Janek Schumann created VELOCITY-953: ---------------------------------------
Summary: VelocimacroProxy polutes context stack due to wrong handling of #break and exceptions Key: VELOCITY-953 URL: https://issues.apache.org/jira/browse/VELOCITY-953 Project: Velocity Issue Type: Bug Components: Engine Affects Versions: 2.3 Reporter: Janek Schumann The render method of org.apache.velocity.runtime.directive.VelocimacroProxy contains the following code: {code:java} try { // render the velocity macro context.pushCurrentMacroName(macroName); nodeTree.render(context, writer); context.popCurrentMacroName(); return true; }{code} Everytime, a VM is exited via #break - or any other exception for that matter - the context stack isn't cleaned up properly. {{This will lead to a fatal error fast because the max call depth is reached quite soon. Even with a max call depth of 200 or more this will happen, depending on the complexity of the template and the usage of #break etc.}} *{{Proposed solution}}* {{Similar to #parse, move the popCurrentMacroName to finally like so}} {code:java} finally { context.popCurrentTemplateName(); [...] }{code} -- This message was sent by Atlassian Jira (v8.20.1#820001) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@velocity.apache.org For additional commands, e-mail: dev-h...@velocity.apache.org