diff --git a/redisson/src/main/java/org/redisson/RedissonPermitExpirableSemaphore.java b/redisson/src/main/java/org/redisson/RedissonPermitExpirableSemaphore.java index d40321d6f..78de34a80 100644 --- a/redisson/src/main/java/org/redisson/RedissonPermitExpirableSemaphore.java +++ b/redisson/src/main/java/org/redisson/RedissonPermitExpirableSemaphore.java @@ -74,7 +74,7 @@ public class RedissonPermitExpirableSemaphore extends RedissonExpirable implemen @Override public RFuture acquireAsync(long leaseTime, TimeUnit timeUnit) { CompletionStage future = acquireAsync(1, leaseTime, timeUnit) - .thenApply(f -> f.get(0)); + .thenApply(RedissonPermitExpirableSemaphore::getFirstOrNull); return new CompletableFutureWrapper<>(future); } @@ -112,11 +112,12 @@ public class RedissonPermitExpirableSemaphore extends RedissonExpirable implemen } // return get(acquireAsync(permits, ttl, timeUnit)); } - + + @Override public RFuture acquireAsync() { - RFuture> ids = acquireAsync(1, -1, TimeUnit.MILLISECONDS); - CompletionStage f = ids.thenApply(r -> r.get(0)); - return new CompletableFutureWrapper<>(f); + CompletionStage future = acquireAsync(1) + .thenApply(RedissonPermitExpirableSemaphore::getFirstOrNull); + return new CompletableFutureWrapper<>(future); } @Override