Is there a test case for including macros in a seperate file that is
included using the template merge?

I'm testing this build and I'm getting a null pointer only when I
update the file.



On 8/4/08, Jarkko Viinamäki (JIRA) <dev@velocity.apache.org> wrote:
>
>      [
> https://issues.apache.org/jira/browse/VELOCITY-607?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
> ]
>
> Jarkko Viinamäki updated VELOCITY-607:
> --------------------------------------
>
>     Attachment: velocity-1.6-dev-macro-performance-IDEAS-v2.2.patch
>
> Latest attachment includes final tweaks to improve performance. I'll start
> waiting for feedback on these changes. With these changes 1.6-dev is 10-20%
> faster than 1.5 with the tests I ran (on single core laptop).
>
> Interestingly the creation of the macro context in VelocimacroProxy.render
> method costs a lot of time because of the memory allocation. There's no easy
> way to avoid this though.
>
>> 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.2.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]
>
>

-- 
Sent from Gmail for mobile | mobile.google.com

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to