Return-Path: Delivered-To: apmail-jakarta-commons-dev-archive@www.apache.org Received: (qmail 52901 invoked from network); 27 Apr 2004 20:16:01 -0000 Received: from daedalus.apache.org (HELO mail.apache.org) (208.185.179.12) by minotaur-2.apache.org with SMTP; 27 Apr 2004 20:16:01 -0000 Received: (qmail 24827 invoked by uid 500); 27 Apr 2004 20:15:47 -0000 Delivered-To: apmail-jakarta-commons-dev-archive@jakarta.apache.org Received: (qmail 24629 invoked by uid 500); 27 Apr 2004 20:15:46 -0000 Mailing-List: contact commons-dev-help@jakarta.apache.org; run by ezmlm Precedence: bulk List-Unsubscribe: List-Subscribe: List-Help: List-Post: List-Id: "Jakarta Commons Developers List" Reply-To: "Jakarta Commons Developers List" Delivered-To: mailing list commons-dev@jakarta.apache.org Received: (qmail 24615 invoked by uid 500); 27 Apr 2004 20:15:46 -0000 Received: (qmail 24607 invoked from network); 27 Apr 2004 20:15:46 -0000 Received: from unknown (HELO minotaur.apache.org) (209.237.227.194) by daedalus.apache.org with SMTP; 27 Apr 2004 20:15:46 -0000 Received: (qmail 52879 invoked by uid 1340); 27 Apr 2004 20:15:56 -0000 Date: 27 Apr 2004 20:15:56 -0000 Message-ID: <20040427201556.52878.qmail@minotaur.apache.org> From: dirkv@apache.org To: jakarta-commons-cvs@apache.org Subject: cvs commit: jakarta-commons/pool/src/java/org/apache/commons/pool/impl GenericObjectPool.java X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N 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