#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: dev-unsubscr...@velocity.apache.org
For additional commands, e-mail: dev-h...@velocity.apache.org

Reply via email to