[ https://issues.apache.org/jira/browse/VELOCITY-835?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Claude Brisson updated VELOCITY-835: ------------------------------------ Fix Version/s: (was: 1.7.x) 2.2 > Velocity Macro Stack Traces Patch > --------------------------------- > > Key: VELOCITY-835 > URL: https://issues.apache.org/jira/browse/VELOCITY-835 > Project: Velocity > Issue Type: Improvement > Components: Engine > Affects Versions: 1.7 > Reporter: Luke Perkins > Assignee: Claude Brisson > Priority: Major > Labels: patch > Fix For: 2.2 > > Attachments: patchVelocityStackTraces.diff > > Original Estimate: 2h > Remaining Estimate: 2h > > Hey guys I made a patch to Velocity 1.7 to enable you to print out velocity > stack traces. If you dump a stack trace in a Java function that was called > from a velocity file, you usually see a bunch of calls to velocity parser > functions like this in the Java stack trace: > ... > at > org.apache.velocity.runtime.parser.node.ASTIdentifier.execute(ASTIdentifier.java:209) > at > org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:280) > at > org.apache.velocity.runtime.parser.node.ASTReference.evaluate(ASTReference.java:530) > at > org.apache.velocity.runtime.parser.node.ASTExpression.evaluate(ASTExpression.java:62) > at > org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:85) > at > org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72) > at > org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:87) > at > org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72) > at > org.apache.velocity.runtime.directive.VelocimacroProxy.render(VelocimacroProxy.java:216) > at > org.apache.velocity.runtime.directive.RuntimeMacro.render(RuntimeMacro.java:312) > at > org.apache.velocity.runtime.directive.RuntimeMacro.render(RuntimeMacro.java:230) > at > org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:207) > at > org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:342) > at > org.apache.velocity.runtime.parser.node.ASTStringLiteral.value(ASTStringLiteral.java:330) > ... > The velocity stack trace created by this patches is much more informative: > Velocity Stack Trace: Invocation of method 'getAvatarUrl' in class Member > at avatarUrl called at common/Macros.vm[line 426, column 29] > at simpleAvatarUrl called at common/Macros.vm[line 487, column 22] > at drawSimpleImage called at common/Macros.vm[line 487, column 3] > at simpleMemberAvatar called at site/photo_pane.vm[line 153, column > 32] > at displayAvatarImage called at site/photo_pane.vm[line 162, column 3] > This sort of stack trace is very useful when debugging code and trying to > figure out which sequence of macros called into the currently executing Java > code that dumped out the Java stack trace. Please consider adding something > like this to a future release of Velocity - it would be very useful! > Thanks, > Luke -- This message was sent by Atlassian Jira (v8.3.2#803003) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@velocity.apache.org For additional commands, e-mail: dev-h...@velocity.apache.org