Details
-
Bug
-
Status: Resolved
-
Minor
-
Resolution: Fixed
-
2.4.2
-
None
Description
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)
Attachments
Attachments
Issue Links
- is superceded by
-
POOL-356 deadlock if borrowObject gets called to fast and maxIdle is 0
- Resolved