[
https://issues.apache.org/jira/browse/VELOCITY-285?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Henning Schmiedehausen closed VELOCITY-285.
-------------------------------------------
> reference within macro and foreach is incorrect
> -----------------------------------------------
>
> Key: VELOCITY-285
> URL: https://issues.apache.org/jira/browse/VELOCITY-285
> Project: Velocity
> Issue Type: Bug
> Components: Engine
> Affects Versions: 1.4
> Environment: Operating System: other
> Platform: Other
> Reporter: Gilles Scokart
> Assigned To: Henning Schmiedehausen
> Priority: Minor
> Fix For: 1.5
>
>
> It seems that there is a bug when we have loop into a recursive macro.
> Here is the test I run :
> #macro (test_loop $p)
> call to test_loop ($p)
> #foreach($child in $p)
> in the loop the param should not be changed : ($p)
> #test_loop($child)
> #end
> return
> #end
> #set($l1=["a"])
> #set($l = [$l1])
> #test_loop($l)
> It produce:
> call to test_loop ([[a]])
> in the loop the param should not be changed : ([[a]])
> call to test_loop ([a])
> in the loop the param should not be changed : (a)
> call to test_loop (a)
> return
> return
> return
> IMHO, it should be
> call to test_loop ([[a]])
> in the loop the param should not be changed : ([[a]])
> call to test_loop ([a])
> in the loop the param should not be changed : ([a])
> call to test_loop (a)
> return
> return
> return
> The difference is in the second recusive call. I don't know why, but it seems
> that the instruction #foreach($child in $p) has modified $p that contains the
> value of $child.
--
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]