Paul Pazderski created POOL-327:
-----------------------------------

             Summary: GKOP: returnObject does not unblock threads waiting in 
borrowObject if maxIdle=0
                 Key: POOL-327
                 URL: https://issues.apache.org/jira/browse/POOL-327
             Project: Commons Pool
          Issue Type: Bug
    Affects Versions: 2.4.2
            Reporter: Paul Pazderski
            Priority: Minor


If idle objects are disabled by maxIdle=0 a thread blocked in borrowObject is 
not notified if another thread returns an object.

Attached is a unit test ({{327-maxIdle0-test.patch}}) that demonstrates the 
issue. I tried a similar test on GenericKeyedObjectPool as well which not seems 
to be affected by this issue.

I also attached two possible solutions for this issue.
The first ({{327-maxIdle0.patch}}) just notifies a potentially waiting thread 
in the affected returnObject code branch. (similar to POOL-240)

The second ({{327-maxIdle0-alternativ.patch}}) checks for waiting threads every 
time an object get destroyed. But this may introduce undesired behavior in 
other functions. (like clear or evict)



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to