velocity-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Nathan Bubna <nbu...@gmail.com>
Subject Re: Velocity Macro Stack Traces Patch
Date Mon, 01 Oct 2012 23:19:46 GMT
That looks like a great improvement!  We aren't generally supposed to
accept patches from email attachments (licensing or some such).  Can
you create an issue in JIRA for this enhancement and post the diff
there?  http://issues.apache.org

On Mon, Oct 1, 2012 at 12:42 PM, Luke Perkins <lperkins@tripadvisor.com> wrote:
> 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
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@velocity.apache.org
> For additional commands, e-mail: dev-help@velocity.apache.org

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@velocity.apache.org
For additional commands, e-mail: dev-help@velocity.apache.org


Mime
View raw message