From dc7206ab79c6aebec3d70761fae4739204f37524 Mon Sep 17 00:00:00 2001 From: Nikita Koksharov Date: Thu, 22 Aug 2019 10:08:43 +0300 Subject: [PATCH] Fixed - semaphore object is not deleted after RLocalCachedMap.clearLocalCache method invocation. #2273 --- .../main/java/org/redisson/cache/LocalCacheListener.java | 9 ++++++++- .../java/org/redisson/RedissonLocalCachedMapTest.java | 3 +++ 2 files changed, 11 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 ed71d0bc0..a8d1727f9 100644 --- a/redisson/src/main/java/org/redisson/cache/LocalCacheListener.java +++ b/redisson/src/main/java/org/redisson/cache/LocalCacheListener.java @@ -255,7 +255,14 @@ public abstract class LocalCacheListener { return; } - result.trySuccess(null); + semaphore.deleteAsync().onComplete((re, exc) -> { + if (exc != null) { + result.tryFailure(exc); + return; + } + + result.trySuccess(null); + }); }); }); diff --git a/redisson/src/test/java/org/redisson/RedissonLocalCachedMapTest.java b/redisson/src/test/java/org/redisson/RedissonLocalCachedMapTest.java index fbfa8f068..26eeddf87 100644 --- a/redisson/src/test/java/org/redisson/RedissonLocalCachedMapTest.java +++ b/redisson/src/test/java/org/redisson/RedissonLocalCachedMapTest.java @@ -314,7 +314,10 @@ public class RedissonLocalCachedMapTest extends BaseMapTest { assertThat(cache1.size()).isEqualTo(2); assertThat(cache2.size()).isEqualTo(2); + map1.clearLocalCache(); + + assertThat(redisson.getKeys().count()).isEqualTo(1); assertThat(cache1.size()).isZero(); assertThat(cache2.size()).isZero();