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