Issue Details (XML | Word | Printable)

Key: POOL-122
Type: Bug Bug
Status: Closed Closed
Resolution: Fixed
Priority: Major Major
Assignee: Unassigned
Reporter: Marcus Schulte
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
Commons Pool

java.util.Timer in EvictionTimer does not recover from OutOfMemoryError in Evictor

Created: 02/Feb/08 04:01 PM   Updated: 19/Jun/09 04:13 PM
Return to search
Component/s: None
Affects Version/s: 1.3, 1.4
Fix Version/s: 1.5

Time Tracking:
Not Specified

File Attachments:
  Size
Text File Licensed for inclusion in ASF works fixes_POOL-122.patch 2008-02-02 06:50 PM Marcus Schulte 4 kB
Environment: any

Resolution Date: 01/Apr/09 04:46 PM


 Description  « Hide
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.



 All   Comments   Work Log   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
No work has yet been logged on this issue.