diff --git a/core/src/main/java/com/alibaba/druid/pool/DruidDataSource.java b/core/src/main/java/com/alibaba/druid/pool/DruidDataSource.java index f26e49cead..9ca7ca0b13 100644 --- a/core/src/main/java/com/alibaba/druid/pool/DruidDataSource.java +++ b/core/src/main/java/com/alibaba/druid/pool/DruidDataSource.java @@ -3252,7 +3252,7 @@ public void shrink(boolean checkTime, boolean keepAlive) { final long currentTimeMillis = System.currentTimeMillis(); int size = connections.size(); for (int i = 0; i < size; ++i) { - DruidConnectionHolder connection = connections.pollFirst(); + DruidConnectionHolder connection = connections.pollLast(); if ((onFatalError || fatalErrorIncrement > 0) && (lastFatalErrorTimeMillis > connection.connectTimeMillis)) {