[
https://issues.apache.org/jira/browse/VELOCITY-835?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Claude Brisson closed VELOCITY-835.
-----------------------------------
> 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: [email protected]
For additional commands, e-mail: [email protected]