diff --git a/redisson/src/main/java/org/redisson/RedissonPermitExpirableSemaphore.java b/redisson/src/main/java/org/redisson/RedissonPermitExpirableSemaphore.java index b84d7b63c..836080f1e 100644 --- a/redisson/src/main/java/org/redisson/RedissonPermitExpirableSemaphore.java +++ b/redisson/src/main/java/org/redisson/RedissonPermitExpirableSemaphore.java @@ -719,9 +719,6 @@ public class RedissonPermitExpirableSemaphore extends RedissonExpirable implemen "return 0;" + "end;" + "local delta = tonumber(ARGV[1]) - maximum; " + - "if (delta == 0) then " + - "return 0;" + - "end;" + "redis.call('incrby', KEYS[1], delta); " + "redis.call('publish', KEYS[2], ARGV[1]); " + "return delta;", diff --git a/redisson/src/test/java/org/redisson/RedissonPermitExpirableSemaphoreTest.java b/redisson/src/test/java/org/redisson/RedissonPermitExpirableSemaphoreTest.java index 46e505fd3..18a59a989 100644 --- a/redisson/src/test/java/org/redisson/RedissonPermitExpirableSemaphoreTest.java +++ b/redisson/src/test/java/org/redisson/RedissonPermitExpirableSemaphoreTest.java @@ -247,6 +247,8 @@ public class RedissonPermitExpirableSemaphoreTest extends BaseConcurrentTest { assertThat(s.availablePermits()).isEqualTo(15); s.addPermits(-10); assertThat(s.availablePermits()).isEqualTo(5); + s.addPermits(-10); + assertThat(s.availablePermits()).isEqualTo(-5); } @Test