[
https://issues.apache.org/jira/browse/POOL-122?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12694752#action_12694752
]
Joerg Schaible commented on POOL-122:
-------------------------------------
Well, handling OOME might be really useful. It is not of help, if you have a
memory leak, but sometimes a user simply tries to process a really big
document, image or something similar and the system recovers immediately from
memory shortage as soon as the silly process has been stopped. Thanks for
changing the implementation agian, though.
> java.util.Timer in EvictionTimer does not recover from OutOfMemoryError in
> Evictor
> ----------------------------------------------------------------------------------
>
> Key: POOL-122
> URL: https://issues.apache.org/jira/browse/POOL-122
> Project: Commons Pool
> Issue Type: Bug
> Affects Versions: 1.3, 1.4
> Environment: any
> Reporter: Marcus Schulte
> Fix For: 1.5
>
> Attachments: fixes_POOL-122.patch
>
>
> GenericKeyedObjectPool.Evictor.run() catches and ignores Exceptions, but not
> Errors, like OOME. Consequently, when, due to load-peeks an OOME is thrown in
> the evictor's timer-thread it dies miserably and no eviction will happen
> again in any of the pools loaded within the same class-loader (because the
> eviction timer is a static member). Also, the creation of evicting pools will
> fail with IllegalStateException.
> Possible fixes:
> 1. catch Throwable in GenericKeyedObjectPool.Evictor.run()
> 2. check and eventually re-instantiate the Eviction-Timer.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.