Tim Broberg created POOL-314:
--------------------------------

             Summary: Return with testOnBorrow set
                 Key: POOL-314
                 URL: https://issues.apache.org/jira/browse/POOL-314
             Project: Commons Pool
          Issue Type: Bug
    Affects Versions: 2.4.2
            Reporter: Tim Broberg


On call to GenericKeyedObjectPool.returnObject() with testOnReturn set, when 
there are blocked GenericKeyedObjectPool.borrowObject() calls, I expect the 
blocked calls to unblock if returning this object successfully would free up a 
slot.

Instead, returnObject() exits without checking for pending borrowObject()'s.

This can result in a hung / timed out request despite the necessary resources 
to fill the request being available.

        if (getTestOnReturn()) {
            if (!factory.validateObject(key, p)) {
                // blah blah blah
                return;
            }
        }

        // blah blah blah
        if (hasBorrowWaiters()) {
            reuseCapacity(); // Never get here because we returned up above.
        }



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to