diff --git a/redisson/src/main/java/org/redisson/pubsub/PublishSubscribeService.java b/redisson/src/main/java/org/redisson/pubsub/PublishSubscribeService.java index 691e8b778..037e8be84 100644 --- a/redisson/src/main/java/org/redisson/pubsub/PublishSubscribeService.java +++ b/redisson/src/main/java/org/redisson/pubsub/PublishSubscribeService.java @@ -926,7 +926,7 @@ public class PublishSubscribeService { } private CompletableFuture removeListenerAsync(PubSubType type, ChannelName channelName, Consumer consumer) { - if (!name2entry.containsKey(channelName)) { + if (!name2entry.containsKey(channelName) || connectionManager.getServiceManager().isShuttingDown()) { return CompletableFuture.completedFuture(null); } @@ -939,7 +939,9 @@ public class PublishSubscribeService { return sf.thenCompose(res -> { Collection entries = name2entry.get(channelName); - if (entries == null || entries.isEmpty()) { + if (entries == null + || entries.isEmpty() + || connectionManager.getServiceManager().isShuttingDown()) { semaphore.release(); return CompletableFuture.completedFuture(null); }