From: Mark R. <mro...@us...> - 2012-04-28 10:41:35
|
Update of /cvsroot/firebird/client-java/src/test/org/firebirdsql/ds In directory vz-cvs-3.sog:/tmp/cvs-serv21954/src/test/org/firebirdsql/ds Modified Files: TestFBConnectionPoolDataSource.java Log Message: Fix for JDBC-250 : ConcurrentModificationException using FBConnectionPoolDataSource when statements are open on connection close Index: TestFBConnectionPoolDataSource.java =================================================================== RCS file: /cvsroot/firebird/client-java/src/test/org/firebirdsql/ds/TestFBConnectionPoolDataSource.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- TestFBConnectionPoolDataSource.java 9 Apr 2012 10:10:34 -0000 1.3 +++ TestFBConnectionPoolDataSource.java 28 Apr 2012 10:41:32 -0000 1.4 @@ -132,4 +132,38 @@ assertEquals("someValue", ds.getNonStandardProperty("someProperty")); } + + /** + * Test if closing the logical connection does not produce errors when + * it is closed with statements open. + * <p> + * See JDBC-250 + * </p> + */ + public void testStatementOnConnectionClose() throws SQLException { + PooledConnection pc = getPooledConnection(); + Connection con = pc.getConnection(); + Statement stmt = con.createStatement(); + + con.close(); + assertTrue("Statement should be closed", stmt.isClosed()); + assertTrue("Connection should be closed", con.isClosed()); + } + + /** + * Test if obtaining a new logical connection while one is open does not produce errors + * when the older logical connection is closed with statements open. + * <p> + * See JDBC-250 + * </p> + */ + public void testStatementOnConnectionReuse() throws SQLException { + PooledConnection pc = getPooledConnection(); + Connection con = pc.getConnection(); + Statement stmt = con.createStatement(); + + pc.getConnection(); + assertTrue("Statement should be closed", stmt.isClosed()); + assertTrue("Connection should be closed", con.isClosed()); + } } |