This is an automated email from the ASF dual-hosted git repository. ggregory pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/commons-dbcp.git
The following commit(s) were added to refs/heads/master by this push: new 709b245b Sort members 709b245b is described below commit 709b245b65e41b0fc51319ded489a62478d9cfc1 Author: Gary Gregory <garydgreg...@gmail.com> AuthorDate: Thu Feb 22 10:12:46 2024 -0500 Sort members --- .../dbcp2/TestAbandonedBasicDataSource.java | 78 +++++++++++----------- 1 file changed, 39 insertions(+), 39 deletions(-) diff --git a/src/test/java/org/apache/commons/dbcp2/TestAbandonedBasicDataSource.java b/src/test/java/org/apache/commons/dbcp2/TestAbandonedBasicDataSource.java index dbd2b929..bdaac780 100644 --- a/src/test/java/org/apache/commons/dbcp2/TestAbandonedBasicDataSource.java +++ b/src/test/java/org/apache/commons/dbcp2/TestAbandonedBasicDataSource.java @@ -205,6 +205,45 @@ public class TestAbandonedBasicDataSource extends TestBasicDataSource { assertTrue(string.contains("testAbandonedCloseWithExceptions"), string); } + @Test + public void testAbandonedStackTraces() throws Exception { + // force abandoned + ds.setRemoveAbandonedTimeout(Duration.ZERO); + ds.setMaxTotal(1); + ds.setAccessToUnderlyingConnectionAllowed(true); + ds.setAbandonedUsageTracking(true); + + try (Connection conn1 = getConnection()) { + assertNotNull(conn1); + assertEquals(1, ds.getNumActive()); + // Use the connection + try (Statement stmt = conn1.createStatement()) { + assertNotNull(stmt); + stmt.execute("SELECT 1 FROM DUAL"); + } + + try (Connection conn2 = getConnection()) { + // Attempt to borrow object triggers abandoned cleanup + // conn1 should be closed by the pool to make room + assertNotNull(conn2); + assertEquals(1, ds.getNumActive()); + // Verify that conn1 is closed + assertTrue(((DelegatingConnection<?>) conn1).getInnermostDelegate().isClosed()); + // Verify that conn1 is aborted + final TesterConnection tCon = (TesterConnection) ((DelegatingConnection<?>) conn1) + .getInnermostDelegate(); + assertTrue(tCon.isAborted()); + + } + assertEquals(0, ds.getNumActive()); + } + assertEquals(0, ds.getNumActive()); + final String stackTrace = sw.toString(); + assertTrue(stackTrace.contains("testAbandonedStackTraces"), stackTrace); + assertTrue(stackTrace.contains("Pooled object created"), stackTrace); + assertTrue(stackTrace.contains("The last code to use this object was:"), stackTrace); + } + /** * DBCP-180 - verify that a GC can clean up an unused Statement when it is * no longer referenced even when it is tracked via the AbandonedTrace @@ -389,43 +428,4 @@ public class TestAbandonedBasicDataSource extends TestBasicDataSource { checkLastUsedStatement(st, conn); } } - - @Test - public void testAbandonedStackTraces() throws Exception { - // force abandoned - ds.setRemoveAbandonedTimeout(Duration.ZERO); - ds.setMaxTotal(1); - ds.setAccessToUnderlyingConnectionAllowed(true); - ds.setAbandonedUsageTracking(true); - - try (Connection conn1 = getConnection()) { - assertNotNull(conn1); - assertEquals(1, ds.getNumActive()); - // Use the connection - try (Statement stmt = conn1.createStatement()) { - assertNotNull(stmt); - stmt.execute("SELECT 1 FROM DUAL"); - } - - try (Connection conn2 = getConnection()) { - // Attempt to borrow object triggers abandoned cleanup - // conn1 should be closed by the pool to make room - assertNotNull(conn2); - assertEquals(1, ds.getNumActive()); - // Verify that conn1 is closed - assertTrue(((DelegatingConnection<?>) conn1).getInnermostDelegate().isClosed()); - // Verify that conn1 is aborted - final TesterConnection tCon = (TesterConnection) ((DelegatingConnection<?>) conn1) - .getInnermostDelegate(); - assertTrue(tCon.isAborted()); - - } - assertEquals(0, ds.getNumActive()); - } - assertEquals(0, ds.getNumActive()); - final String stackTrace = sw.toString(); - assertTrue(stackTrace.contains("testAbandonedStackTraces"), stackTrace); - assertTrue(stackTrace.contains("Pooled object created"), stackTrace); - assertTrue(stackTrace.contains("The last code to use this object was:"), stackTrace); - } }