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();