From ecb04bbb54336cf203b0b5f68ad0225b046c9588 Mon Sep 17 00:00:00 2001 From: Gary Russell Date: Mon, 27 Jun 2022 14:37:17 -0400 Subject: [PATCH] GH-3826: Fix reducePermits Must not go negative. --- .../java/org/springframework/integration/util/SimplePool.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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); } }