You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by ps...@apache.org on 2015/04/24 02:34:03 UTC

svn commit: r1675737 - in /commons/proper/dbcp/trunk/src: changes/ main/java/org/apache/commons/dbcp2/ main/java/org/apache/commons/dbcp2/managed/ test/java/org/apache/commons/dbcp2/

Author: psteitz
Date: Fri Apr 24 00:34:03 2015
New Revision: 1675737

URL: http://svn.apache.org/r1675737
Log:
Made BasicDataSource set disconnection properties on its PCF. JIRA: DBCP-437.

Modified:
    commons/proper/dbcp/trunk/src/changes/changes.xml
    commons/proper/dbcp/trunk/src/main/java/org/apache/commons/dbcp2/BasicDataSource.java
    commons/proper/dbcp/trunk/src/main/java/org/apache/commons/dbcp2/managed/BasicManagedDataSource.java
    commons/proper/dbcp/trunk/src/test/java/org/apache/commons/dbcp2/TestBasicDataSource.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=1675737&r1=1675736&r2=1675737&view=diff
==============================================================================
--- commons/proper/dbcp/trunk/src/changes/changes.xml (original)
+++ commons/proper/dbcp/trunk/src/changes/changes.xml Fri Apr 24 00:34:03 2015
@@ -60,6 +60,11 @@ The <action> type attribute can be add,u
      -->
 
   <body>
+    <release version="2.1.1" date="TBD" description="Bug fixes.">
+    <action issue="DBCP-437" dev="psteitz" type="fix">
+      BasicDataSource does not set disconnectionSql properties on its PoolableConnectionFactory.
+    </action>
+    </release>
     <release version="2.1" date="23 Feb 2015" description=
  "This is minor release, including bug fixes and enhancements. Note that
   one of the enhancements (DBCP-423) is to implement AutoCloseable in

Modified: commons/proper/dbcp/trunk/src/main/java/org/apache/commons/dbcp2/BasicDataSource.java
URL: http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/src/main/java/org/apache/commons/dbcp2/BasicDataSource.java?rev=1675737&r1=1675736&r2=1675737&view=diff
==============================================================================
--- commons/proper/dbcp/trunk/src/main/java/org/apache/commons/dbcp2/BasicDataSource.java (original)
+++ commons/proper/dbcp/trunk/src/main/java/org/apache/commons/dbcp2/BasicDataSource.java Fri Apr 24 00:34:03 2015
@@ -2284,6 +2284,8 @@ public class BasicDataSource implements
             connectionFactory.setRollbackOnReturn(getRollbackOnReturn());
             connectionFactory.setEnableAutoCommitOnReturn(getEnableAutoCommitOnReturn());
             connectionFactory.setDefaultQueryTimeout(getDefaultQueryTimeout());
+            connectionFactory.setFastFailValidation(fastFailValidation);
+            connectionFactory.setDisconnectionSqlCodes(disconnectionSqlCodes);
             validateConnectionFactory(connectionFactory);
         } catch (RuntimeException e) {
             throw e;

Modified: commons/proper/dbcp/trunk/src/main/java/org/apache/commons/dbcp2/managed/BasicManagedDataSource.java
URL: http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/src/main/java/org/apache/commons/dbcp2/managed/BasicManagedDataSource.java?rev=1675737&r1=1675736&r2=1675737&view=diff
==============================================================================
--- commons/proper/dbcp/trunk/src/main/java/org/apache/commons/dbcp2/managed/BasicManagedDataSource.java (original)
+++ commons/proper/dbcp/trunk/src/main/java/org/apache/commons/dbcp2/managed/BasicManagedDataSource.java Fri Apr 24 00:34:03 2015
@@ -201,6 +201,8 @@ public class BasicManagedDataSource exte
             connectionFactory.setRollbackOnReturn(getRollbackOnReturn());
             connectionFactory.setEnableAutoCommitOnReturn(getEnableAutoCommitOnReturn());
             connectionFactory.setDefaultQueryTimeout(getDefaultQueryTimeout());
+            connectionFactory.setFastFailValidation(getFastFailValidation());
+            connectionFactory.setDisconnectionSqlCodes(getDisconnectionSqlCodes());
             validateConnectionFactory(connectionFactory);
         } catch (RuntimeException e) {
             throw e;

Modified: commons/proper/dbcp/trunk/src/test/java/org/apache/commons/dbcp2/TestBasicDataSource.java
URL: http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/src/test/java/org/apache/commons/dbcp2/TestBasicDataSource.java?rev=1675737&r1=1675736&r2=1675737&view=diff
==============================================================================
--- commons/proper/dbcp/trunk/src/test/java/org/apache/commons/dbcp2/TestBasicDataSource.java (original)
+++ commons/proper/dbcp/trunk/src/test/java/org/apache/commons/dbcp2/TestBasicDataSource.java Fri Apr 24 00:34:03 2015
@@ -23,6 +23,7 @@ import java.io.IOException;
 import java.lang.management.ManagementFactory;
 import java.sql.Connection;
 import java.sql.SQLException;
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Properties;
 import java.util.Set;
@@ -736,6 +737,26 @@ public class TestBasicDataSource extends
         // Nothing should be registered
         assertEquals(0, mbs.queryNames(commons, null).size());
     }
+    
+    /**
+     * JIRA: DBCP-437
+     * Verify that BasicDataSource sets disconnect codes properties.
+     * Functionality is verified in pcf tests.
+     */
+    @Test
+    public void testDisconnectSqlCodes() throws Exception {
+        ArrayList<String> disconnectionSqlCodes = new ArrayList<String>();
+        disconnectionSqlCodes.add("XXX");
+        ds.setDisconnectionSqlCodes(disconnectionSqlCodes);
+        ds.setFastFailValidation(true);
+        ds.getConnection();  // Triggers initialization - pcf creation
+        // Make sure factory got the properties
+        PoolableConnectionFactory pcf = 
+                (PoolableConnectionFactory) ds.getConnectionPool().getFactory();
+        assertTrue(pcf.isFastFailValidation());
+        assertTrue(pcf.getDisconnectionSqlCodes().contains("XXX"));
+        assertEquals(1, pcf.getDisconnectionSqlCodes().size());   
+    }
 }
 
 /**
@@ -788,4 +809,5 @@ class TesterConnectionDelayDriver extend
     public boolean acceptsURL(String url) throws SQLException {
         return url.startsWith(CONNECT_STRING);
     }
+    
 }