[jboss-jira] [JBoss JIRA] (WFCORE-1399) Failure when resolving an expression with the default value containing a '$' at the end
Valentin Maechler (JIRA)
issues at jboss.org
Mon Feb 22 03:39:00 EST 2016
[ https://issues.jboss.org/browse/WFCORE-1399?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13166136#comment-13166136 ]
Valentin Maechler edited comment on WFCORE-1399 at 2/22/16 3:38 AM:
--------------------------------------------------------------------
Good day!
I've tried to escape the {{'$'}} with a leading {{'$'}} ==> test cases do not work as expected.
Let's say we have a default value {{'a$'}}.
And the system property is called {{'z'}}.
The expression is then {code}'${z:a$$}'{code} including the escaping {{'$'}}.
Expectation:
# if the system property {{'z'}} is set to {{'system-prop-value'}} the resulting value shall be {{'system-prop-value'}} (/)
# if the system property {{'z'}} is *NOT* set the resulting value shall be {{'a$'}} (x)
The 1st case works fine (/) *but* the result of the 2nd case is {{'a$$'}} (x).
test cases added to ExpressionResolverUnitTestCase.java
{code}
@Test
public void testSpecialDefaultValueWithSystemPropertySet() throws OperationFailedException {
System.setProperty("z", "system-prop-value");
try {
ModelNode node = new ModelNode();
node.get("expr").set(new ValueExpression("${z:a$$}"));
node = ExpressionResolver.TEST_RESOLVER.resolveExpressions(node);
assertEquals(1, node.keys().size());
assertEquals("system-prop-value", node.get("expr").asString());
} finally {
System.clearProperty("z");
}
}
@Test
public void testSpecialDefaultValueWithoutSystemPropertySet() throws OperationFailedException {
ModelNode node = new ModelNode();
node.get("expr").set(new ValueExpression("${z:a$$}"));
node = ExpressionResolver.TEST_RESOLVER.resolveExpressions(node);
assertEquals(1, node.keys().size());
System.out.println("testSpecialDefaultValueWithoutSystemPropertySet: " + node.get("expr").asString());
assertEquals("a$", node.get("expr").asString());
}
{code}
was (Author: vmae):
Good day!
I've tried to escape the {{'$'}} with a leading {{'$'}} ==> test cases do not work as expected.
Let's say we have a default value {{'a$'}}.
And the system property is called {{'z'}}.
The expression is then {code}'${z:a$$}'{code} including the escaping {{'$'}}.
Expectation:
# if the system property {{'z'}} is set to {{'system-prop-value'}} the resulting value shall be {{'system-prop-value'}} (/)
# if the system property {{'z'}} is *NOT* set the resulting value shall be {{'a$'}} (x)
The 1st case works fine but the result of the 2nd case is {{'a$$'}}.
test cases added to ExpressionResolverUnitTestCase.java
{code}
@Test
public void testSpecialDefaultValueWithSystemPropertySet() throws OperationFailedException {
System.setProperty("z", "system-prop-value");
try {
ModelNode node = new ModelNode();
node.get("expr").set(new ValueExpression("${z:a$$}"));
node = ExpressionResolver.TEST_RESOLVER.resolveExpressions(node);
assertEquals(1, node.keys().size());
assertEquals("system-prop-value", node.get("expr").asString());
} finally {
System.clearProperty("z");
}
}
@Test
public void testSpecialDefaultValueWithoutSystemPropertySet() throws OperationFailedException {
ModelNode node = new ModelNode();
node.get("expr").set(new ValueExpression("${z:a$$}"));
node = ExpressionResolver.TEST_RESOLVER.resolveExpressions(node);
assertEquals(1, node.keys().size());
System.out.println("testSpecialDefaultValueWithoutSystemPropertySet: " + node.get("expr").asString());
assertEquals("a$", node.get("expr").asString());
}
{code}
> Failure when resolving an expression with the default value containing a '$' at the end
> ---------------------------------------------------------------------------------------
>
> Key: WFCORE-1399
> URL: https://issues.jboss.org/browse/WFCORE-1399
> Project: WildFly Core
> Issue Type: Bug
> Components: Domain Management
> Affects Versions: 2.1.0.CR1
> Reporter: Valentin Maechler
> Assignee: ehsavoie Hugonnet
> Attachments: ExpressionResolver.java, ExpressionResolverUnitTestCase.java
>
>
> Can not add a JNDI / naming entry which contains a "$" sign at the end of its default value.
> e.g. {code}
> value="${my.sample.property1:entry5-default-value-with-special-char-at-the-end-$}"
> {code}
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
More information about the jboss-jira
mailing list