diff --git a/src/main/java/com/zaxxer/hikari/pool/HikariPool.java b/src/main/java/com/zaxxer/hikari/pool/HikariPool.java index a1a12349..833e9c4b 100755 --- a/src/main/java/com/zaxxer/hikari/pool/HikariPool.java +++ b/src/main/java/com/zaxxer/hikari/pool/HikariPool.java @@ -696,13 +696,11 @@ public final class HikariPool extends PoolBase implements HikariPoolMXBean, IBag afterPrefix = "After cleanup "; final List notInUse = connectionBag.values(STATE_NOT_IN_USE); - int removed = 0; + int toRemove = notInUse.size() - config.getMinimumIdle(); for (PoolEntry entry : notInUse) { - if (elapsedMillis(entry.lastAccessed, now) > idleTimeout && connectionBag.reserve(entry)) { + if (toRemove > 0 && elapsedMillis(entry.lastAccessed, now) > idleTimeout && connectionBag.reserve(entry)) { closeConnection(entry, "(connection has passed idleTimeout)"); - if (++removed > config.getMinimumIdle()) { - break; - } + toRemove--; } } }