Return-Path: Delivered-To: apmail-jakarta-commons-dev-archive@www.apache.org Received: (qmail 15710 invoked from network); 7 Mar 2004 10:54:01 -0000 Received: from daedalus.apache.org (HELO mail.apache.org) (208.185.179.12) by minotaur-2.apache.org with SMTP; 7 Mar 2004 10:54:01 -0000 Received: (qmail 75026 invoked by uid 500); 7 Mar 2004 10:53:31 -0000 Delivered-To: apmail-jakarta-commons-dev-archive@jakarta.apache.org Received: (qmail 74968 invoked by uid 500); 7 Mar 2004 10:53:31 -0000 Mailing-List: contact commons-dev-help@jakarta.apache.org; run by ezmlm Precedence: bulk List-Unsubscribe: List-Subscribe: List-Help: List-Post: List-Id: "Jakarta Commons Developers List" Reply-To: "Jakarta Commons Developers List" Delivered-To: mailing list commons-dev@jakarta.apache.org Received: (qmail 74948 invoked by uid 500); 7 Mar 2004 10:53:30 -0000 Received: (qmail 74945 invoked from network); 7 Mar 2004 10:53:30 -0000 Received: from unknown (HELO minotaur.apache.org) (209.237.227.194) by daedalus.apache.org with SMTP; 7 Mar 2004 10:53:30 -0000 Received: (qmail 15683 invoked by uid 1340); 7 Mar 2004 10:53:56 -0000 Date: 7 Mar 2004 10:53:56 -0000 Message-ID: <20040307105356.15682.qmail@minotaur.apache.org> From: dirkv@apache.org To: jakarta-commons-cvs@apache.org Subject: cvs commit: jakarta-commons/dbcp/src/test/org/apache/commons/dbcp TestPStmtPoolingBasicDataSource.java X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N dirkv 2004/03/07 02:53:56 Modified: dbcp/src/test/org/apache/commons/dbcp TestPStmtPoolingBasicDataSource.java Log: Testcases for issue 27492 - prepared statements pooled accross a connection close Revision Changes Path 1.4 +68 -1 jakarta-commons/dbcp/src/test/org/apache/commons/dbcp/TestPStmtPoolingBasicDataSource.java Index: TestPStmtPoolingBasicDataSource.java =================================================================== RCS file: /home/cvs/jakarta-commons/dbcp/src/test/org/apache/commons/dbcp/TestPStmtPoolingBasicDataSource.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- TestPStmtPoolingBasicDataSource.java 28 Feb 2004 11:47:52 -0000 1.3 +++ TestPStmtPoolingBasicDataSource.java 7 Mar 2004 10:53:56 -0000 1.4 @@ -19,6 +19,7 @@ import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; +import java.sql.Statement; import junit.framework.Test; import junit.framework.TestSuite; @@ -84,5 +85,71 @@ stmt1.close(); PreparedStatement stmt4 = conn.prepareStatement("select 'a' from dual"); assertNotNull(stmt4); + } + + public void testPStmtPoolingWithNoClose() throws Exception { + ds.setMaxActive(1); // only one connection in pool needed + ds.setMaxIdle(1); + ds.setAccessToUnderlyingConnectionAllowed(true); + Connection conn1 = getConnection(); + assertNotNull(conn1); + assertEquals(1, ds.getNumActive()); + assertEquals(0, ds.getNumIdle()); + + PreparedStatement stmt1 = conn1.prepareStatement("select 'a' from dual"); + assertNotNull(stmt1); + + Statement inner1 = ((DelegatingPreparedStatement) stmt1).getInnermostDelegate(); + assertNotNull(inner1); + + stmt1.close(); + + Connection conn2 = conn1; + assertNotNull(conn2); + assertEquals(1, ds.getNumActive()); + assertEquals(0, ds.getNumIdle()); + + PreparedStatement stmt2 = conn2.prepareStatement("select 'a' from dual"); + assertNotNull(stmt2); + + Statement inner2 = ((DelegatingPreparedStatement) stmt2).getInnermostDelegate(); + assertNotNull(inner2); + + assertSame(inner1, inner2); + } + + public void testPStmtPoolingAccrossClose() throws Exception { + ds.setMaxActive(1); // only one connection in pool needed + ds.setMaxIdle(1); + ds.setAccessToUnderlyingConnectionAllowed(true); + Connection conn1 = getConnection(); + assertNotNull(conn1); + assertEquals(1, ds.getNumActive()); + assertEquals(0, ds.getNumIdle()); + + PreparedStatement stmt1 = conn1.prepareStatement("select 'a' from dual"); + assertNotNull(stmt1); + + Statement inner1 = ((DelegatingPreparedStatement) stmt1).getInnermostDelegate(); + assertNotNull(inner1); + + stmt1.close(); + conn1.close(); + + assertEquals(0, ds.getNumActive()); + assertEquals(1, ds.getNumIdle()); + + Connection conn2 = getConnection(); + assertNotNull(conn2); + assertEquals(1, ds.getNumActive()); + assertEquals(0, ds.getNumIdle()); + + PreparedStatement stmt2 = conn2.prepareStatement("select 'a' from dual"); + assertNotNull(stmt2); + + Statement inner2 = ((DelegatingPreparedStatement) stmt2).getInnermostDelegate(); + assertNotNull(inner2); + + assertSame(inner1, inner2); } } --------------------------------------------------------------------- To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org For additional commands, e-mail: commons-dev-help@jakarta.apache.org