[ 
https://issues.apache.org/jira/browse/POOL-122?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12565098#action_12565098
 ] 

Mark Thomas commented on POOL-122:
----------------------------------

Once there has been an OOME the only safe course of action is to shut the JVM 
down, assuming you have enough control left to be able to do that. Swallowing 
the OOME will make it impossible to detect that the system needs to shut down, 
so I am against any such change.

> 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
>         Environment: any
>            Reporter: Marcus Schulte
>
> 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.

Reply via email to