[ 
https://issues.apache.org/jira/browse/POOL-240?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13827853#comment-13827853
 ] 

Phil Steitz commented on POOL-240:
----------------------------------

Thanks for reporting this.  This looks like a bug.  Unless I am missing 
something, looks like validation failures on return (both GOP / GKOP) will 
behave similarly - blocked threads waiting on depleted pool will stay blocked.  
The change in behavior is due to move away from wait/notify setup in pool 1.x.

I suspect what is going to be needed is a call to create() added to destroy() 
or some kind of notification engineered into the queue.

> GKOP: invalidateObject does not unblock threads waiting in borrowObject
> -----------------------------------------------------------------------
>
>                 Key: POOL-240
>                 URL: https://issues.apache.org/jira/browse/POOL-240
>             Project: Commons Pool
>          Issue Type: Bug
>    Affects Versions: 2.0
>            Reporter: Dan McNulty
>         Attachments: InvalidateObjectTest.java
>
>
> It appears that when threads are blocked in GKOP.borrowObject due to max 
> object limits being reached and another thread calls invalidateObject, the 
> threads blocked in GKOP.borrowObject are not woken up to attempt to create a 
> new object.
> Have the semantics changed for invalidate in 2.0?
> Attached is a unit test that demonstrates this issue. I should note that this 
> test passed against POOL 1.5, after making the appropriate changes due to the 
> API changes in 2.0.
> After a cursory glance through the source for GenericObjectPool, it looks 
> like it might be affected by the same issue.



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to