You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by ma...@apache.org on 2014/02/26 16:30:29 UTC

svn commit: r1572093 - /commons/proper/dbcp/trunk/src/test/java/org/apache/commons/dbcp2/TestPStmtPooling.java

Author: markt
Date: Wed Feb 26 15:30:28 2014
New Revision: 1572093

URL: http://svn.apache.org/r1572093
Log:
More FindBugs fixes

Modified:
    commons/proper/dbcp/trunk/src/test/java/org/apache/commons/dbcp2/TestPStmtPooling.java

Modified: commons/proper/dbcp/trunk/src/test/java/org/apache/commons/dbcp2/TestPStmtPooling.java
URL: http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/src/test/java/org/apache/commons/dbcp2/TestPStmtPooling.java?rev=1572093&r1=1572092&r2=1572093&view=diff
==============================================================================
--- commons/proper/dbcp/trunk/src/test/java/org/apache/commons/dbcp2/TestPStmtPooling.java (original)
+++ commons/proper/dbcp/trunk/src/test/java/org/apache/commons/dbcp2/TestPStmtPooling.java Wed Feb 26 15:30:28 2014
@@ -18,7 +18,7 @@
 package org.apache.commons.dbcp2;
 
 import java.sql.Connection;
-import java.sql.Driver;
+import java.sql.DriverManager;
 import java.sql.PreparedStatement;
 import java.sql.Statement;
 import java.sql.SQLException;
@@ -51,8 +51,7 @@ public class TestPStmtPooling extends Te
     }
 
     public void testStmtPool() throws Exception {
-        @SuppressWarnings("unused") // Ensure TesterDriver is registered
-        Driver d = new TesterDriver();
+        DriverManager.registerDriver(new TesterDriver());
         ConnectionFactory connFactory = new DriverManagerConnectionFactory(
                 "jdbc:apache:commons:testdriver","u1","p1");
 
@@ -62,22 +61,23 @@ public class TestPStmtPooling extends Te
         pcf.setDefaultReadOnly(Boolean.FALSE);
         pcf.setDefaultAutoCommit(Boolean.TRUE);
         ObjectPool<PoolableConnection> connPool = new GenericObjectPool<>(pcf);
+        pcf.setPool(connPool);
 
         DataSource ds = new PoolingDataSource<>(connPool);
 
-        Connection conn = ds.getConnection();
-        Statement stmt1 = conn.prepareStatement("select 1 from dual");
-        Statement ustmt1 = ((DelegatingStatement) stmt1).getInnermostDelegate();
-        stmt1.close();
-        Statement stmt2 = conn.prepareStatement("select 1 from dual");
-        Statement ustmt2 = ((DelegatingStatement) stmt2).getInnermostDelegate();
-        stmt2.close();
-        assertSame(ustmt1, ustmt2);
+        try (Connection conn = ds.getConnection()) {
+            Statement stmt1 = conn.prepareStatement("select 1 from dual");
+            Statement ustmt1 = ((DelegatingStatement) stmt1).getInnermostDelegate();
+            stmt1.close();
+            Statement stmt2 = conn.prepareStatement("select 1 from dual");
+            Statement ustmt2 = ((DelegatingStatement) stmt2).getInnermostDelegate();
+            stmt2.close();
+            assertSame(ustmt1, ustmt2);
+        }
     }
 
     public void testCallableStatementPooling() throws Exception {
-        @SuppressWarnings("unused") // Ensure TesterDriver is registered
-        Driver d = new TesterDriver();
+        DriverManager.registerDriver(new TesterDriver());
         ConnectionFactory connFactory = new DriverManagerConnectionFactory(
                 "jdbc:apache:commons:testdriver","u1","p1");
 
@@ -97,32 +97,32 @@ public class TestPStmtPooling extends Te
 
         DataSource ds = new PoolingDataSource<>(connPool);
 
-        Connection conn = ds.getConnection();
-        Statement stmt1 = conn.prepareStatement("select 1 from dual");
-        Statement ustmt1 = ((DelegatingStatement) stmt1).getInnermostDelegate();
-        Statement cstmt1 = conn.prepareCall("{call home}");
-        Statement ucstmt1 = ((DelegatingStatement) cstmt1).getInnermostDelegate();
-        stmt1.close();  // Return to pool
-        cstmt1.close(); // ""
-        Statement stmt2 = conn.prepareStatement("select 1 from dual"); // Check out from pool
-        Statement ustmt2 = ((DelegatingStatement) stmt2).getInnermostDelegate();
-        Statement cstmt2 = conn.prepareCall("{call home}");
-        Statement ucstmt2 = ((DelegatingStatement) cstmt2).getInnermostDelegate();
-        stmt2.close();  // Return to pool
-        cstmt2.close(); // ""
-        assertSame(ustmt1, ustmt2);
-        assertSame(ucstmt1, ucstmt2);
-        // Verify key distinguishes Callable from Prepared Statements in the pool
-        Statement stmt3 = conn.prepareCall("select 1 from dual");
-        Statement ustmt3 = ((DelegatingStatement) stmt3).getInnermostDelegate();
-        stmt3.close();
-        assertNotSame(ustmt1, ustmt3);
-        assertNotSame(ustmt3, ucstmt1);
+        try (Connection conn = ds.getConnection()) {
+            Statement stmt1 = conn.prepareStatement("select 1 from dual");
+            Statement ustmt1 = ((DelegatingStatement) stmt1).getInnermostDelegate();
+            Statement cstmt1 = conn.prepareCall("{call home}");
+            Statement ucstmt1 = ((DelegatingStatement) cstmt1).getInnermostDelegate();
+            stmt1.close();  // Return to pool
+            cstmt1.close(); // ""
+            Statement stmt2 = conn.prepareStatement("select 1 from dual"); // Check out from pool
+            Statement ustmt2 = ((DelegatingStatement) stmt2).getInnermostDelegate();
+            Statement cstmt2 = conn.prepareCall("{call home}");
+            Statement ucstmt2 = ((DelegatingStatement) cstmt2).getInnermostDelegate();
+            stmt2.close();  // Return to pool
+            cstmt2.close(); // ""
+            assertSame(ustmt1, ustmt2);
+            assertSame(ucstmt1, ucstmt2);
+            // Verify key distinguishes Callable from Prepared Statements in the pool
+            Statement stmt3 = conn.prepareCall("select 1 from dual");
+            Statement ustmt3 = ((DelegatingStatement) stmt3).getInnermostDelegate();
+            stmt3.close();
+            assertNotSame(ustmt1, ustmt3);
+            assertNotSame(ustmt3, ucstmt1);
+        }
     }
 
     public void testClosePool() throws Exception {
-        @SuppressWarnings("unused") // Ensure TesterDriver is registered
-        Driver d = new TesterDriver();
+        DriverManager.registerDriver(new TesterDriver());
         ConnectionFactory connFactory = new DriverManagerConnectionFactory(
                 "jdbc:apache:commons:testdriver","u1","p1");
 
@@ -138,14 +138,13 @@ public class TestPStmtPooling extends Te
         ((PoolingDataSource<?>) ds).setAccessToUnderlyingConnectionAllowed(true);
 
         Connection conn = ds.getConnection();
-        conn.prepareStatement("select 1 from dual");
+        try (Statement s = conn.prepareStatement("select 1 from dual")) {}
 
         Connection poolableConnection = ((DelegatingConnection<?>) conn).getDelegate();
         Connection poolingConnection =
             ((DelegatingConnection<?>) poolableConnection).getDelegate();
         poolingConnection.close();
-        try {
-            conn.prepareStatement("select 1 from dual");
+        try (PreparedStatement ps = conn.prepareStatement("select 1 from dual")) {
             fail("Expecting SQLException");
         } catch (SQLException ex) {
             assertTrue(ex.getMessage().endsWith("invalid PoolingConnection."));
@@ -153,8 +152,7 @@ public class TestPStmtPooling extends Te
     }
 
     public void testBatchUpdate() throws Exception {
-        @SuppressWarnings("unused") // Ensure TesterDriver is registered
-        Driver d = new TesterDriver();
+        DriverManager.registerDriver(new TesterDriver());
         ConnectionFactory connFactory = new DriverManagerConnectionFactory(
                 "jdbc:apache:commons:testdriver","u1","p1");