diff --git a/src/main/java/com/alibaba/druid/pool/DruidAbstractDataSource.java b/src/main/java/com/alibaba/druid/pool/DruidAbstractDataSource.java index a4a5f74a91..6a56cb01d9 100644 --- a/src/main/java/com/alibaba/druid/pool/DruidAbstractDataSource.java +++ b/src/main/java/com/alibaba/druid/pool/DruidAbstractDataSource.java @@ -931,6 +931,10 @@ public abstract class DruidAbstractDataSource extends WrapperAdapter implements if (inited && value > this.maxActive) { throw new IllegalArgumentException("minIdle greater than maxActive, " + maxActive + " < " + this.minIdle); } + + if (minIdle < 0) { + throw new IllegalArgumentException("minIdle must > 0"); + } this.minIdle = value; } diff --git a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java index 9e2abf3bfc..2820c557ae 100644 --- a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java +++ b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java @@ -1059,7 +1059,7 @@ public class DruidDataSource extends DruidAbstractDataSource activeCount--; discardCount++; - if (activeCount <= 0) { + if (activeCount <= minIdle) { emptySignal(); } } finally {