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 2009/03/22 07:43:29 UTC

svn commit: r757135 - /commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp/TestAbandonedBasicDataSource.java

Author: psteitz
Date: Sun Mar 22 06:43:28 2009
New Revision: 757135

URL: http://svn.apache.org/viewvc?rev=757135&view=rev
Log:
Added test case confirming that DelegatingStatement updates its lastUsed property when it creates or prepares a statement. JIRA: DBCP-199

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

Modified: commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp/TestAbandonedBasicDataSource.java
URL: http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp/TestAbandonedBasicDataSource.java?rev=757135&r1=757134&r2=757135&view=diff
==============================================================================
--- commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp/TestAbandonedBasicDataSource.java (original)
+++ commons/proper/dbcp/trunk/src/test/org/apache/commons/dbcp/TestAbandonedBasicDataSource.java Sun Mar 22 06:43:28 2009
@@ -135,4 +135,25 @@
         try { conn1.close(); } catch (SQLException ex) { }
         assertEquals(0, ds.getNumActive());
     }
+    
+    /**
+     * Verify that lastUsed property is updated when a connection
+     * creates or prepares a statement
+     */
+    public void testlastUsed() throws Exception {
+        ds.setRemoveAbandonedTimeout(1);
+        ds.setMaxActive(2);
+        Connection conn1 = ds.getConnection();
+        Thread.sleep(500);
+        conn1.createStatement(); // Should reset lastUsed
+        Thread.sleep(800);
+        Connection conn2 = ds.getConnection(); // triggers abandoned cleanup
+        conn1.createStatement(); // Should still be OK
+        conn2.close();
+        Thread.sleep(500);
+        conn1.prepareStatement("SELECT 1 FROM DUAL"); // reset
+        Thread.sleep(800);
+        conn2 = ds.getConnection(); // trigger abandoned cleanup again
+        conn1.createStatement();         
+    }
 }