Uploaded image for project: 'Commons Pool'
  1. Commons Pool
  2. POOL-122

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

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 1.3, 1.4
    • Fix Version/s: 1.5
    • Labels:
      None
    • Environment:

      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.

        Attachments

        1. fixes_POOL-122.patch
          4 kB
          Marcus Schulte

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              mschu Marcus Schulte
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: