diff --git a/spring-integration-core/src/main/java/org/springframework/integration/util/SimplePool.java b/spring-integration-core/src/main/java/org/springframework/integration/util/SimplePool.java index ce09905999..ff1b225ae6 100644 --- a/spring-integration-core/src/main/java/org/springframework/integration/util/SimplePool.java +++ b/spring-integration-core/src/main/java/org/springframework/integration/util/SimplePool.java @@ -272,6 +272,7 @@ public class SimplePool implements Pool { removeAllIdleItems(); } + @SuppressWarnings("serial") private static class PoolSemaphore extends Semaphore { PoolSemaphore(int permits) { @@ -280,7 +281,7 @@ public class SimplePool implements Pool { @Override public void reducePermits(int reduction) { // NOSONAR increases visibility - super.reducePermits(reduction); + super.reducePermits(reduction > availablePermits() ? availablePermits() : reduction); } }