You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Paul Pazderski (JIRA)" <ji...@apache.org> on 2017/06/19 11:48:00 UTC
[jira] [Created] (POOL-327) GKOP: returnObject does not unblock
threads waiting in borrowObject if maxIdle=0
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)