[ https://issues.apache.org/jira/browse/VELOCITY-607?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12619877#action_12619877 ]
Erron Austin commented on VELOCITY-607: --------------------------------------- Is there a test case for including macros in a separate file that is included using the template merge? I'm doing template.merge(context, writer, templates); where templates contains a path to the file containing my macros. I'm testing this patch (velocity-1.6-dev-macro-performance-IDEAS-v2.2.patch) and I'm getting a null pointer only when I update the file. The error occurs in the ResourceMangerImpl.refreshResource(). The macros file is coming back a resource type of 0 instead of 1 or 2. Therefore, it is throwing a null pointer exception when attempts to create a new resource. > Runtime macro rendering very slow in Velocity 1.6-dev (679708) compared to 1.5 > ------------------------------------------------------------------------------ > > Key: VELOCITY-607 > URL: https://issues.apache.org/jira/browse/VELOCITY-607 > Project: Velocity > Issue Type: Bug > Components: Engine > Environment: Maven 2, JUnit, JUnitPerf, JRat, custom testbench: > http://www.iki.fi/wyla/velocity/testbench > Reporter: Jarkko Viinamäki > Priority: Critical > Fix For: 1.6 > > Attachments: velocity-1.5-velocity24-test.PNG, > velocity-1.6-dev-macro-performance-IDEAS-v2.4.patch, > velocity-1.6-head-20080725-velocity24-test.PNG > > > The following test template (see VELOCITY-24): > ## local macro, not global > #macro(letter $char) > This is the letter $char > #end > #letter("A") > #letter("B") > #letter("C") > #letter("D") > #letter("E") > #letter("F") > #letter("G") > #letter("H") > #letter("I") > #letter("J") > #letter("K") > #letter("L") > #letter("M") > #letter("N") > #letter("O") > #letter("P") > #letter("Q") > #letter("R") > #letter("S") > #letter("T") > #letter("U") > #letter("V") > #letter("W") > #letter("X") > #letter("Y") > #letter("Z") > --- > Works quickly and correctly with Velocity 1.5 with several concurrent > threads. However, 1.6-dev is a LOT slower (even 20x). > The major performance bottlenecks seem to be: > RuntimeMacro.render (60% of time) > VelocimacroFactory.getVelocimacro (20% of time) > With several threads this test also causes Velocity to throw error(s): > org.apache.velocity.exception.MacroOverflowException: Exceed maximum 20 macro > calls. Call Stack:letter->letter->letter->letter->letter > at > org.apache.velocity.runtime.VelocimacroFactory.startMacroRendering(VelocimacroFactory.java:179) > at > org.apache.velocity.runtime.RuntimeInstance.startMacroRendering(RuntimeInstance.java:1693) > at > org.apache.velocity.runtime.directive.VelocimacroProxy.render(VelocimacroProxy.java:200) > at > org.apache.velocity.runtime.directive.RuntimeMacro.render(RuntimeMacro.java:230) > at > org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:178) > at > org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:323) > at org.apache.velocity.Template.merge(Template.java:324) > at org.apache.velocity.Template.merge(Template.java:232) > at > org.apache.velocity.test.load.Velocity24Test.testRendering(Velocity24Test.java:51) > This is related to VELOCITY-297 but the fix doesn't seem work with the new > modified macro implementation. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]