diff --git a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java index b4bb94d47d..46e952da77 100644 --- a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java +++ b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java @@ -2149,7 +2149,7 @@ public boolean isMbeanRegistered() { } boolean putLast(DruidConnectionHolder e, long lastActiveTimeMillis) { - if (poolingCount >= maxActive || e.discard) { + if (poolingCount >= maxActive || e.discard || this.closed) { return false; } @@ -2503,7 +2503,7 @@ protected boolean put(PhysicalConnectionInfo physicalConnectionInfo) { private boolean put(DruidConnectionHolder holder, long createTaskId) { lock.lock(); try { - if (poolingCount >= maxActive) { + if (poolingCount >= maxActive || this.closed) { if (createScheduler != null) { clearCreateTask(createTaskId); }