From 4584264c9de4d4da61288842c3c18cea26cb1166 Mon Sep 17 00:00:00 2001 From: Brett Wooldridge Date: Thu, 12 Dec 2013 11:23:50 +0900 Subject: [PATCH] Add test for connection use after close(). --- .../java/com/zaxxer/hikari/ExceptionTest.java | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/core/src/test/java/com/zaxxer/hikari/ExceptionTest.java b/core/src/test/java/com/zaxxer/hikari/ExceptionTest.java index 9353620b..de02dc28 100644 --- a/core/src/test/java/com/zaxxer/hikari/ExceptionTest.java +++ b/core/src/test/java/com/zaxxer/hikari/ExceptionTest.java @@ -52,4 +52,41 @@ public class ExceptionTest Assert.assertSame("Totals connections not as expected", 0, ds.pool.getTotalConnections()); Assert.assertSame("Idle connections not as expected", 0, ds.pool.getIdleConnections()); } + + @Test + public void testUseAfterClose() throws SQLException + { + HikariConfig config = new HikariConfig(); + config.setMinimumPoolSize(1); + config.setMaximumPoolSize(2); + config.setAcquireIncrement(1); + config.setConnectionTestQuery("VALUES 1"); + config.setDataSourceClassName("com.zaxxer.hikari.mocks.StubDataSource"); + + HikariDataSource ds = new HikariDataSource(config); + + Assert.assertSame("Totals connections not as expected", 1, ds.pool.getTotalConnections()); + Assert.assertSame("Idle connections not as expected", 1, ds.pool.getIdleConnections()); + + Connection connection = ds.getConnection(); + Assert.assertNotNull(connection); + + Assert.assertSame("Totals connections not as expected", 1, ds.pool.getTotalConnections()); + Assert.assertSame("Idle connections not as expected", 0, ds.pool.getIdleConnections()); + + connection.close(); + + try + { + connection.prepareStatement("SELECT some, thing FROM somewhere WHERE something=?"); + Assert.fail(); + } + catch (SQLException e) + { + Assert.assertSame("Connection is closed", e.getMessage()); + } + + Assert.assertSame("Totals connections not as expected", 1, ds.pool.getTotalConnections()); + Assert.assertSame("Idle connections not as expected", 1, ds.pool.getIdleConnections()); + } }