From bbac41d3e97f3de2c0175cf166ed2a980bae0e5b Mon Sep 17 00:00:00 2001 From: Brett Wooldridge Date: Sat, 26 Apr 2014 23:44:09 +0900 Subject: [PATCH] Eliminate double-execution of shutdown code. --- .../com/zaxxer/hikari/pool/HikariPool.java | 25 +++++++++++-------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/zaxxer/hikari/pool/HikariPool.java b/src/main/java/com/zaxxer/hikari/pool/HikariPool.java index 9ea36b38..f78d1ab7 100644 --- a/src/main/java/com/zaxxer/hikari/pool/HikariPool.java +++ b/src/main/java/com/zaxxer/hikari/pool/HikariPool.java @@ -224,18 +224,21 @@ public final class HikariPool implements HikariPoolMBean, IBagStateListener public void shutdown() { - isShutdown = true; - houseKeepingTimer.cancel(); - addConnectionExecutor.shutdown(); - - LOGGER.info("HikariCP pool {} is being shutdown.", configuration.getPoolName()); - logPoolState("State at shutdown "); - - closeIdleConnections(); - - if (isRegisteredMbeans) + if (!isShutdown) { - HikariMBeanElf.unregisterMBeans(configuration, this); + isShutdown = true; + houseKeepingTimer.cancel(); + addConnectionExecutor.shutdown(); + + LOGGER.info("HikariCP pool {} is being shutdown.", configuration.getPoolName()); + logPoolState("State at shutdown "); + + closeIdleConnections(); + + if (isRegisteredMbeans) + { + HikariMBeanElf.unregisterMBeans(configuration, this); + } } }