Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
1.3, 1.4
-
None
-
any
Description
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.