[
https://issues.apache.org/jira/browse/VELOCITY-682?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12666605#action_12666605
]
Nathan Bubna commented on VELOCITY-682:
---------------------------------------
There is something funky here. If i do:
String template = "#macro( eval $e )#evaluate($e)#end" +
"\n#eval('foo')" +
"\n#eval('bar')";
String expected = "\nfoo"+
"\nbar";
assertEvalEquals(expected, template);
Then i get
foobar
foo
as the output. But, if i drop those newlines from the template and expectation:
String template = "#macro( eval $e )#evaluate($e)#end" +
"#eval('foo')" +
"#eval('bar')";
String expected = "foo"+
"bar";
assertEvalEquals(expected, template);
then it works and i get just "foobar". This is with the trunk, of course.
So, yeah, there's something screwy going on.
> #evaluate breaks macro processing
> ---------------------------------
>
> Key: VELOCITY-682
> URL: https://issues.apache.org/jira/browse/VELOCITY-682
> Project: Velocity
> Issue Type: Bug
> Components: Engine
> Affects Versions: 1.6.1
> Reporter: Sergiu Dumitriu
>
> When using #evaluate, all further macro processing is broken; old macros are
> not recognized anymore, and new macros cannot be defined.
> For example:
> {noformat}
> #macro(aSimpleMacro)
> This is a simple macro
> #end
> ## called 3 times to show that it works each time
> #aSimpleMacro()
> #aSimpleMacro()
> #aSimpleMacro()
> #macro(doEval $b)
> #evaluate($x)
> #end
> #set($x = 'value of x')
> #doEval('$x')
> ## after the first call, which used an #evaluate, these two won't work
> anymore:
> #doEval('$x')
> #doEval('$x')
> #macro(anotherSimpleMacro)
> This is another simple macro
> #end
> ## This newly defined macro doesn't work, either...
> #anotherSimpleMacro()
> ## And the first macro, which worked well before, suddenly stops working
> #aSimpleMacro()
> {/noformat}
> should print:
> {noformat}
> This is a simple macro
> This is a simple macro
> This is a simple macro
> value of x
> value of x
> value of x
> This is another simple macro
> This is a simple macro
> {/noformat}
> but instead prints:
> {noformat}
> This is a simple macro
> This is a simple macro
> This is a simple macro
> value of x
> #doEval('$x')
> #doEval('$x')
> #anotherSimpleMacro()
> #aSimpleMacro()
> {/noformat}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]