Thread Interrupt during borrowObject may lock pool
--------------------------------------------------

                 Key: POOL-168
                 URL: https://issues.apache.org/jira/browse/POOL-168
             Project: Commons Pool
          Issue Type: Bug
    Affects Versions: 1.5.4
         Environment: The pool is being used for a connection pool of SSH 
connections on slax.
            Reporter: YL


We're using the pool quite intensively, with many borrow and return calls. The 
pool is set to WHEN_EXHAUSTED_BLOCK with a positive wait value (a few seconds). 
Sometimes, the thread that is waiting on the "latch.wait(waitTime)" call (Line 
1112 in GenericObjectPool of version 1.5.4) may be interrupted. When that 
happens, the InterruptedException will be caught and rethrown correctly. 
However, after this happens, the pool becomes useless and no borrowObject calls 
succeed.

By looking at the code, it appears that some cleanup that is done in normal 
operation (right before the NoSuchElementException timeout exception is thrown) 
is not done in the case detailed above. It is possible that the cleanup should 
be done in the case of interruption as well, to ensure the pool continues to 
operate correctly.

-- 
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