Template parsing of expansions can't handle map expressions
-----------------------------------------------------------

                 Key: TAP5-1605
                 URL: https://issues.apache.org/jira/browse/TAP5-1605
             Project: Tapestry 5
          Issue Type: Bug
          Components: tapestry-core
    Affects Versions: 5.3
            Reporter: Robert Zeigler


5.3 introduced map support into the property expression language in the form: 
{'foo': 'bar'}.

Expansion parsing chokes on the syntax, however.  It uses a reluctant regular 
expression to find the closing brace:

private static final Pattern EXPANSION_PATTERN = 
Pattern.compile("\\$\\{\\s*(.*?)\\s*}");

Which means that the use of a map inside an expansion prematurely terminates 
the exansion:

${echoMap({"foo": "bar"})}

The regex finds the first } and the expression evaluates as:

echoMap({"foo": "bar"

Which is clearly incorrect.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to