From c37a6cb20acaa2b2b3c7afa064fc2102417b9b7e Mon Sep 17 00:00:00 2001 From: Nitin Date: Thu, 1 Oct 2015 13:19:36 +0530 Subject: [PATCH] removed isClosed(), why trip to check when close() is no-op if already closed, moreover isClosed() was not guarded by network timeout. mostly call to close would be once anyway. --- src/main/java/com/zaxxer/hikari/pool/HikariPool.java | 6 ++---- src/main/java/com/zaxxer/hikari/pool/PoolBase.java | 7 ++++--- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/zaxxer/hikari/pool/HikariPool.java b/src/main/java/com/zaxxer/hikari/pool/HikariPool.java index 4362df91..f5327475 100644 --- a/src/main/java/com/zaxxer/hikari/pool/HikariPool.java +++ b/src/main/java/com/zaxxer/hikari/pool/HikariPool.java @@ -173,8 +173,7 @@ public class HikariPool extends PoolBase implements HikariPoolMXBean, IBagStateL metricsTracker.recordBorrowStats(poolEntry, startTime); return poolEntry.createProxyConnection(leakTask.start(poolEntry), now); } - } - while (timeout > 0L); + } while (timeout > 0L); } catch (InterruptedException e) { throw new SQLException(poolName + " - Interrupted during connection acquisition", e); @@ -227,8 +226,7 @@ public class HikariPool extends PoolBase implements HikariPoolMXBean, IBagStateL do { softEvictConnections(); abortActiveConnections(assassinExecutor); - } - while (getTotalConnections() > 0 && clockSource.elapsedMillis(start) < TimeUnit.SECONDS.toMillis(5)); + } while (getTotalConnections() > 0 && clockSource.elapsedMillis(start) < TimeUnit.SECONDS.toMillis(5)); } finally { assassinExecutor.shutdown(); assassinExecutor.awaitTermination(5L, TimeUnit.SECONDS); diff --git a/src/main/java/com/zaxxer/hikari/pool/PoolBase.java b/src/main/java/com/zaxxer/hikari/pool/PoolBase.java index 8ddf569b..cb058365 100644 --- a/src/main/java/com/zaxxer/hikari/pool/PoolBase.java +++ b/src/main/java/com/zaxxer/hikari/pool/PoolBase.java @@ -95,7 +95,7 @@ abstract class PoolBase void quietlyCloseConnection(final Connection connection, final String closureReason) { try { - if (connection == null || connection.isClosed()) { + if (connection == null) { return; } @@ -128,10 +128,10 @@ abstract class PoolBase if (isNetworkTimeoutSupported != TRUE) { setQueryTimeout(statement, (int) TimeUnit.MILLISECONDS.toSeconds(validationTimeout)); } - + statement.execute(config.getConnectionTestQuery()); } - + if (isIsolateInternalQueries && !isReadOnly && !isAutoCommit) { connection.rollback(); } @@ -461,6 +461,7 @@ abstract class PoolBase if (sql != null) { try (Statement statement = connection.createStatement()) { + //con created few ms before, set query timeout is omitted statement.execute(sql); if (!isReadOnly) {