You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by ma...@apache.org on 2011/05/21 18:58:55 UTC
svn commit: r1125745 -
/commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/GenericKeyedObjectPool.java
Author: markt
Date: Sat May 21 16:58:55 2011
New Revision: 1125745
URL: http://svn.apache.org/viewvc?rev=1125745&view=rev
Log:
Don't decrement itemsToRemove when attempting to clear a non-idle object.
Modified:
commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/GenericKeyedObjectPool.java
Modified: commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/GenericKeyedObjectPool.java
URL: http://svn.apache.org/viewvc/commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/GenericKeyedObjectPool.java?rev=1125745&r1=1125744&r2=1125745&view=diff
==============================================================================
--- commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/GenericKeyedObjectPool.java (original)
+++ commons/proper/pool/trunk/src/java/org/apache/commons/pool2/impl/GenericKeyedObjectPool.java Sat May 21 16:58:55 2011
@@ -1417,12 +1417,16 @@ public class GenericKeyedObjectPool<K,T>
// list it belongs to.
K key = entry.getValue();
PooledObject<T> p = entry.getKey();
+ // Assume the destruction succeeds
+ boolean destroyed = true;
try {
- destroy(key, p, false);
+ destroyed = destroy(key, p, false);
} catch (Exception e) {
// TODO - Ignore?
}
- itemsToRemove--;
+ if (destroyed) {
+ itemsToRemove--;
+ }
}
}
@@ -1586,7 +1590,7 @@ public class GenericKeyedObjectPool<K,T>
return p;
}
- private void destroy(K key, PooledObject<T> toDestory, boolean always)
+ private boolean destroy(K key, PooledObject<T> toDestory, boolean always)
throws Exception {
register(key);
@@ -1604,6 +1608,9 @@ public class GenericKeyedObjectPool<K,T>
objectDeque.getCreateCount().decrementAndGet();
numTotal.decrementAndGet();
}
+ return true;
+ } else {
+ return false;
}
} finally {
deregister(key);