[ https://issues.apache.org/jira/browse/TAP5-1605?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13083985#comment-13083985 ]
Hudson commented on TAP5-1605: ------------------------------ Integrated in tapestry-trunk-freestyle #471 (See [https://builds.apache.org/job/tapestry-trunk-freestyle/471/]) TAP5-1605: Template parsing of expansions can't handle map expressions robertdzeigler : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1156971 Files : * /tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/Index.java * /tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/SaxTemplateParser.java * /tapestry/tapestry5/trunk/tapestry-core/src/test/app1/MapExpressionInExpansions.tml * /tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/MapExpressionInExpansions.java * /tapestry/tapestry5/trunk/tapestry-core/src/test/resources/org/apache/tapestry5/internal/services/expansions_with_maps.tml * /tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/TemplateParserImplTest.java * /tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/CoreBehaviorsTests.java * /tapestry/tapestry5/trunk/build.gradle > 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