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 2005/05/16 13:34:06 UTC

svn commit: r170363 - /jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericObjectPool.java

Author: dirkv
Date: Mon May 16 04:34:06 2005
New Revision: 170363

URL: http://svn.apache.org/viewcvs?rev=170363&view=rev
Log:
ASF Bugzilla Bug 34296 [pool] Potential pool leak if _factory.makeObject() throws a Throwable

catch Throwable in call to factory.makeObject();

Modified:
    jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericObjectPool.java

Modified: jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericObjectPool.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericObjectPool.java?rev=170363&r1=170362&r2=170363&view=diff
==============================================================================
--- jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericObjectPool.java (original)
+++ jakarta/commons/proper/pool/trunk/src/java/org/apache/commons/pool/impl/GenericObjectPool.java Mon May 16 04:34:06 2005
@@ -826,13 +826,19 @@
                     pair = new ObjectTimestampPair(obj);
                     newlyCreated = true;
                 }
-                catch (Exception e) {
+                catch (Throwable e) {
                     // object cannot be created
                     synchronized(this) {
                         _numActive--;
                         notifyAll();
                     }
-                    throw e;
+                    if (e instanceof Exception) {
+                        throw (Exception) e;
+                    } else if (e instanceof Error) {
+                        throw (Error) e;
+                    } else {
+                        throw new Exception(e);
+                    }
                 }
             }
 
@@ -844,7 +850,7 @@
                 }                
                 return pair.value;
             } 
-            catch (Exception e) {
+            catch (Throwable e) {
                 // object cannot be activated or is invalid
                 synchronized(this) {
                     _numActive--;
@@ -853,7 +859,7 @@
                 try {
                     _factory.destroyObject(pair.value);
                 } 
-                catch (Exception e2) {
+                catch (Throwable e2) {
                     // cannot destroy broken object 
                 }
                 if(newlyCreated) {



---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org