diff --git a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java index 0452d80672..12f7ddbe04 100644 --- a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java +++ b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java @@ -2999,8 +2999,12 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat DruidConnectionHolder connection = connections[i]; if (onFatalError || fatalErrorIncrement > 0) { - keepAliveConnections[keepAliveCount++] = connection; - continue; + if (lastFatalErrorTimeMillis > connection.connectTimeMillis) { + keepAliveConnections[keepAliveCount++] = connection; + continue; + } else { + break; + } } if (checkTime) {