You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by se...@apache.org on 2012/04/26 18:33:06 UTC

svn commit: r1330937 - in /commons/proper/dbcp/trunk/src: changes/ java/org/apache/commons/dbcp2/ java/org/apache/commons/dbcp2/datasources/ java/org/apache/commons/dbcp2/managed/

Author: sebb
Date: Thu Apr 26 16:33:06 2012
New Revision: 1330937

URL: http://svn.apache.org/viewvc?rev=1330937&view=rev
Log:
DBCP-322 CPDSConnectionFactory.validateObject(Object) ignores Throwable

Modified:
    commons/proper/dbcp/trunk/src/changes/changes.xml
    commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/BasicDataSource.java
    commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/datasources/CPDSConnectionFactory.java
    commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/datasources/KeyedCPDSConnectionFactory.java
    commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/managed/BasicManagedDataSource.java

Modified: commons/proper/dbcp/trunk/src/changes/changes.xml
URL: http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/src/changes/changes.xml?rev=1330937&r1=1330936&r2=1330937&view=diff
==============================================================================
--- commons/proper/dbcp/trunk/src/changes/changes.xml (original)
+++ commons/proper/dbcp/trunk/src/changes/changes.xml Thu Apr 26 16:33:06 2012
@@ -42,6 +42,9 @@ The <action> type attribute can be add,u
      features as well as bug fixes and enhancements. Version 2.0.x supports JDBC
      4, so requires JDK 1.6.  Applications running under JDK 1.4-1.5 must use
      DBCP 1.3.x. Applications running under JDK 1.6 should use DBCP 2.0.x.">
+      <action issue="DBCP-322" dev="sebb" type="fix">
+        CPDSConnectionFactory.validateObject(Object) ignores Throwable.
+      </action>
       <action dev="markt" type="add">
         Provide a new option (cacheState) to cache current values of autoCommit
         and readOnly so database queries are not required for every call to the

Modified: commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/BasicDataSource.java
URL: http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/BasicDataSource.java?rev=1330937&r1=1330936&r2=1330937&view=diff
==============================================================================
--- commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/BasicDataSource.java (original)
+++ commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/BasicDataSource.java Thu Apr 26 16:33:06 2012
@@ -1616,7 +1616,7 @@ public class BasicDataSource implements 
                             ).getContextClassLoader().loadClass(
                                     driverClassName);
                 }
-            } catch (Throwable t) {
+            } catch (Exception t) {
                 String message = "Cannot load JDBC driver class '" +
                     driverClassName + "'";
                 logWriter.println(message);
@@ -1638,7 +1638,7 @@ public class BasicDataSource implements 
                     throw new SQLException("No suitable driver", "08001"); 
                 }
             }
-        } catch (Throwable t) {
+        } catch (Exception t) {
             String message = "Cannot create JDBC driver of class '" +
                 (driverClassName != null ? driverClassName : "") +
                 "' for connect URL '" + url + "'";

Modified: commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/datasources/CPDSConnectionFactory.java
URL: http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/datasources/CPDSConnectionFactory.java?rev=1330937&r1=1330936&r2=1330937&view=diff
==============================================================================
--- commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/datasources/CPDSConnectionFactory.java (original)
+++ commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/datasources/CPDSConnectionFactory.java Thu Apr 26 16:33:06 2012
@@ -30,6 +30,7 @@ import javax.sql.ConnectionEventListener
 import javax.sql.ConnectionPoolDataSource;
 import javax.sql.PooledConnection;
 
+import org.apache.commons.dbcp2.Utils;
 import org.apache.commons.pool2.ObjectPool;
 import org.apache.commons.pool2.PoolableObjectFactory;
 
@@ -195,27 +196,9 @@ class CPDSConnectionFactory
             } catch (Exception e) {
                 valid = false;
             } finally {
-                if (rset != null) {
-                    try {
-                        rset.close();
-                    } catch (Throwable t) {
-                        // ignore
-                    }
-                }
-                if (stmt != null) {
-                    try {
-                        stmt.close();
-                    } catch (Throwable t) {
-                        // ignore
-                    }
-                }
-                if (conn != null) {
-                    try {
-                        conn.close();
-                    } catch (Throwable t) {
-                        // ignore
-                    }
-                }
+                Utils.closeQuietly(rset);
+                Utils.closeQuietly(stmt);
+                Utils.closeQuietly(conn);
                 validatingSet.remove(pconn);
             }
         } else {

Modified: commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/datasources/KeyedCPDSConnectionFactory.java
URL: http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/datasources/KeyedCPDSConnectionFactory.java?rev=1330937&r1=1330936&r2=1330937&view=diff
==============================================================================
--- commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/datasources/KeyedCPDSConnectionFactory.java (original)
+++ commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/datasources/KeyedCPDSConnectionFactory.java Thu Apr 26 16:33:06 2012
@@ -30,6 +30,7 @@ import javax.sql.ConnectionEventListener
 import javax.sql.ConnectionPoolDataSource;
 import javax.sql.PooledConnection;
 
+import org.apache.commons.dbcp2.Utils;
 import org.apache.commons.pool2.KeyedObjectPool;
 import org.apache.commons.pool2.KeyedPoolableObjectFactory;
 
@@ -190,27 +191,9 @@ class KeyedCPDSConnectionFactory
             } catch(Exception e) {
                 valid = false;
             } finally {
-                if (rset != null) {
-                    try {
-                        rset.close();
-                    } catch (Throwable t) {
-                        // ignore
-                    }
-                }
-                if (stmt != null) {
-                    try {
-                        stmt.close();
-                    } catch (Throwable t) {
-                        // ignore
-                    }
-                }
-                if (conn != null) {
-                    try {
-                        conn.close();
-                    } catch (Throwable t) {
-                        // ignore
-                    }
-                }
+                Utils.closeQuietly(rset);
+                Utils.closeQuietly(stmt);
+                Utils.closeQuietly(conn);
                 validatingSet.remove(pconn);
             }
         } else {

Modified: commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/managed/BasicManagedDataSource.java
URL: http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/managed/BasicManagedDataSource.java?rev=1330937&r1=1330936&r2=1330937&view=diff
==============================================================================
--- commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/managed/BasicManagedDataSource.java (original)
+++ commons/proper/dbcp/trunk/src/java/org/apache/commons/dbcp2/managed/BasicManagedDataSource.java Thu Apr 26 16:33:06 2012
@@ -143,14 +143,14 @@ public class BasicManagedDataSource exte
             Class<?> xaDataSourceClass = null;
             try {
                 xaDataSourceClass = Class.forName(xaDataSource);
-            } catch (Throwable t) {
+            } catch (Exception t) {
                 String message = "Cannot load XA data source class '" + xaDataSource + "'";
                 throw (SQLException)new SQLException(message).initCause(t);
             }
             
             try {
                 xaDataSourceInstance = (XADataSource) xaDataSourceClass.newInstance();
-            } catch (Throwable t) {
+            } catch (Exception t) {
                 String message = "Cannot create XA data source of class '" + xaDataSource + "'";
                 throw (SQLException)new SQLException(message).initCause(t);
             }