Details
-
Bug
-
Status: Closed
-
Minor
-
Resolution: Fixed
-
1.5.1
-
None
Description
In my application I found a thread stuck at GenericObjectPool.borrowObject(GenericObjectPool.java:1099) even though resources were availbale (in my case connections for DBCP).
After an analysis of the code I think I spotted what could have caused this behavior. GenericObjectPool.java:1099 line corresponds to an indefinite wait to a "latch" object. This wait should be awaken when new resources are made available to the pool. The problem is likely that borrowObject enters in wait without performing "latch.getPair()" check in a critical section.