[jira] [Commented] (VELOCITY-886) Loop causes OutOfMemoryError exception

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

[jira] [Commented] (VELOCITY-886) Loop causes OutOfMemoryError exception

JIRA jira@apache.org

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

ventsy velev commented on VELOCITY-886:

I looked at the source code - ASTIntegerRange does exactly what the name suggests - returns a range of integers. In this case it allocates 67 million ints and loops over them initializing them with values 0 - 67million. It appears that the out of memory exception is not handled correctly.

> Loop causes OutOfMemoryError exception
> --------------------------------------
>                 Key: VELOCITY-886
>                 URL: https://issues.apache.org/jira/browse/VELOCITY-886
>             Project: Velocity
>          Issue Type: Bug
>          Components: Engine
>    Affects Versions: 1.7
>         Environment: Windows 7 OS. Java -Xms1024m -Xmx1024m
>            Reporter: ventsy velev
>              Labels: exception-handling, perfomance
>         Attachments: velocityError.png
> The following template will cause an out of memory exception.
> #foreach($i in [0..67000000])
> #if($i == 0)
> hi
> #end
> #end
> I'm not sure why this happens as it's only a loop that only produces output on the first iteration.
> The same loop works fine if I reduce the number of iterations by 1 order of magnitude.
> The engine fails hard and no output is produced.

This message was sent by Atlassian JIRA

To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]