You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@velocity.apache.org by "ventsy velev (JIRA)" <ji...@apache.org> on 2017/10/06 20:40:02 UTC

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

    [ 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
(v6.4.14#64029)

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