[ 
https://issues.apache.org/jira/browse/TAP5-1605?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13083263#comment-13083263
 ] 

Robert Zeigler commented on TAP5-1605:
--------------------------------------

Thinking about this some more... really just trading one limitation (can't have 
a } anywhere inside the expansion) for a different one (can't have ${) and the 
latter is less likely than the former.

> 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
>            Assignee: 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