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

close() does not release threads blocked on borrowObject()

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 1.5.6
    • Fix Version/s: 1.5.7
    • Labels:
      None
    • Environment:

      java 1.6.0_24

      Description

      Hi,

      When I call close() and borrowObject() concurrently with no objects in
      the pool, close() will finish but borrowObject() is blocked forever.
      The documentation of close() mentions that borrowObject() should fail
      with IllegalStateException, so I would expect the waiting threads to
      throw IllegalStateException.

      I will attach a test that exposes this problem. For this test, the
      expected output is:
      0
      1
      2
      ...
      4999
      DONE

      But when the bug manifests (almost always for this test), the output
      is:
      0
      1
      2

      The test does not finish, it just gets stuck after printing several
      values.

      Is this a bug or am I reading the documentation wrongly? Is there
      a patch for this?

      Thanks!

      Adrian

        Attachments

        1. Test.java
          2 kB
          Adrian Nistor
        2. BUG-189v2.diff
          6 kB
          Bill Speirs
        3. BUG-189v1.diff
          3 kB
          Bill Speirs

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              adriannistor Adrian Nistor
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: