From f3ed2399723bc1b0b5c600fc952d63ade7ecef72 Mon Sep 17 00:00:00 2001 From: Nikita Koksharov Date: Mon, 7 Nov 2022 09:43:04 +0300 Subject: [PATCH] Fixed - RedissonLocalCachedMap. clearLocalCacheAsync() method shouldn't retain semaphore after invocation. #4648 --- .../src/main/java/org/redisson/cache/LocalCacheListener.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/redisson/src/main/java/org/redisson/cache/LocalCacheListener.java b/redisson/src/main/java/org/redisson/cache/LocalCacheListener.java index 9423badff..03bec225e 100644 --- a/redisson/src/main/java/org/redisson/cache/LocalCacheListener.java +++ b/redisson/src/main/java/org/redisson/cache/LocalCacheListener.java @@ -34,6 +34,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.IOException; +import java.time.Duration; import java.util.*; import java.util.concurrent.*; @@ -345,6 +346,7 @@ public abstract class LocalCacheListener { private RSemaphore getClearSemaphore(byte[] requestId) { String id = ByteBufUtil.hexDump(requestId); RSemaphore semaphore = new RedissonSemaphore(commandExecutor, name + ":clear:" + id); + semaphore.expireAsync(Duration.ofSeconds(60)); return semaphore; }