From 72198b6e46778e0024af0abd581b6c35a073c52d Mon Sep 17 00:00:00 2001 From: Nikita Koksharov Date: Fri, 6 Mar 2020 08:48:09 +0300 Subject: [PATCH] Fixed - semaphore used during local cache clearing process isn't deleted. --- .../src/main/java/org/redisson/cache/LocalCacheListener.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/redisson/src/main/java/org/redisson/cache/LocalCacheListener.java b/redisson/src/main/java/org/redisson/cache/LocalCacheListener.java index da444564d..cf5071fe8 100644 --- a/redisson/src/main/java/org/redisson/cache/LocalCacheListener.java +++ b/redisson/src/main/java/org/redisson/cache/LocalCacheListener.java @@ -255,6 +255,7 @@ public abstract class LocalCacheListener { } RSemaphore semaphore = getClearSemaphore(id); + semaphore.expireAsync(60, TimeUnit.SECONDS); semaphore.acquireAsync(res.intValue()).onComplete((r, ex) -> { if (ex != null) { result.tryFailure(ex); @@ -346,7 +347,7 @@ public abstract class LocalCacheListener { }); } - protected RSemaphore getClearSemaphore(byte[] requestId) { + private RSemaphore getClearSemaphore(byte[] requestId) { String id = ByteBufUtil.hexDump(requestId); RSemaphore semaphore = new RedissonSemaphore(commandExecutor, name + ":clear:" + id); return semaphore;