Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Duplicate
-
None
-
None
-
None
-
None
-
VTL in user macro in Atlassian Confluence 5.9.4
Description
This works as expected:
## @noparams #set ($n = 5) #set ($m = $n+1) <p>$m</p>
Output: <p>6</p>
However, subtraction doesn't work:
## @noparams #set ($n = 5) #set ($m = $n-1) <p>$m</p>
Output: <p>$m</p>
From SO Q&A #15448108, it appears that this behavior is due to the parser treating the hyphen/dash/minus-sign as part of the identifier, but certainly an exception should be made for when the "identifier" ends with only digits and/or hyphens.
Another case:
## @noparams #set ($n = 5) #set ($m = $n- 1) <p>$m</p>
In this case we get an all too familiar ParseErrorException:
org.apache.velocity.exception.ParseErrorException: Encountered "1" at getRenderedContent[line 4, column 16] Was expecting one of: <RPAREN> ... "-" ... "+" ... "*" ... "/" ... "%" ... <LOGICAL_AND> ... <LOGICAL_OR> ... <LOGICAL_LT> ... <LOGICAL_LE> ... <LOGICAL_GT> ... <LOGICAL_GE> ... <LOGICAL_EQUALS> ... <LOGICAL_NOT_EQUALS> ... at org.apache.velocity.runtime.RuntimeInstance.evaluate(RuntimeInstance.java:1202) at org.apache.velocity.runtime.RuntimeInstance.evaluate(RuntimeInstance.java:1164) at org.apache.velocity.app.VelocityEngine.evaluate(VelocityEngine.java:219) at com.atlassian.confluence.util.velocity.VelocityUtils.writeRenderedContent(VelocityUtils.java:148) at com.atlassian.confluence.util.velocity.VelocityUtils.getRenderedContent(VelocityUtils.java:130) at com.atlassian.confluence.util.velocity.VelocityUtils.getRenderedContent(VelocityUtils.java:117) at com.atlassian.confluence.util.velocity.VelocityUtils.getRenderedContent(VelocityUtils.java:113) at com.atlassian.confluence.macro.GenericVelocityMacro.execute(GenericVelocityMacro.java:101) ~~~snipped~~~
This bug is related to (or possibly the same as) bug 873.
Attachments
Issue Links
- is related to
-
VELOCITY-873 Subtraction without spaces results in parse error
- Resolved
- links to