[ 
https://issues.apache.org/jira/browse/VELOCITY-835?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16925141#comment-16925141
 ] 

Claude Brisson commented on VELOCITY-835:
-----------------------------------------

Implemented differently by VELOCITY-916.

> 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
>            Priority: Major
>              Labels: patch
>             Fix For: 1.7.x
>
>         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

Reply via email to