You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by di...@apache.org on 2004/04/27 22:15:56 UTC
cvs commit: jakarta-commons/pool/src/java/org/apache/commons/pool/impl GenericObjectPool.java
dirkv 2004/04/27 13:15:56
Modified: pool/src/java/org/apache/commons/pool/impl
GenericObjectPool.java
Log:
Bugzilla Bug 28638: Not possible to extend GenericObjectPool.returnObject() without affecting addObject()
- remove the slimy dependency between the two methods ;-)
Revision Changes Path
1.32 +9 -6 jakarta-commons/pool/src/java/org/apache/commons/pool/impl/GenericObjectPool.java
Index: GenericObjectPool.java
===================================================================
RCS file: /home/cvs/jakarta-commons/pool/src/java/org/apache/commons/pool/impl/GenericObjectPool.java,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -r1.31 -r1.32
--- GenericObjectPool.java 28 Feb 2004 11:46:33 -0000 1.31
+++ GenericObjectPool.java 27 Apr 2004 20:15:56 -0000 1.32
@@ -851,6 +851,10 @@
public void returnObject(Object obj) throws Exception {
assertOpen();
+ addObjectToPool(obj, true);
+ }
+
+ private void addObjectToPool(Object obj, boolean decrementNumActive) throws Exception {
boolean success = true;
if(_testOnReturn && !(_factory.validateObject(obj))) {
success = false;
@@ -865,7 +869,9 @@
boolean shouldDestroy = !success;
synchronized(this) {
- _numActive--;
+ if (decrementNumActive) {
+ _numActive--;
+ }
if((_maxIdle >= 0) && (_pool.size() >= _maxIdle)) {
shouldDestroy = true;
} else if(success) {
@@ -988,10 +994,7 @@
*/
public void addObject() throws Exception {
Object obj = _factory.makeObject();
- synchronized(this) {
- _numActive++; // A little slimy - must do this because returnObject decrements it.
- this.returnObject(obj);
- }
+ addObjectToPool(obj, false);
}
//--- non-public methods ----------------------------------------
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org