diff --git a/redisson/src/main/java/org/redisson/pubsub/PublishSubscribeService.java b/redisson/src/main/java/org/redisson/pubsub/PublishSubscribeService.java index 9742e61ff..fa0cf5d03 100644 --- a/redisson/src/main/java/org/redisson/pubsub/PublishSubscribeService.java +++ b/redisson/src/main/java/org/redisson/pubsub/PublishSubscribeService.java @@ -304,12 +304,8 @@ public class PublishSubscribeService { } public RFuture unsubscribe(final ChannelName channelName, final AsyncSemaphore lock) { - if (connectionManager.isShuttingDown()) { - return RedissonPromise.newSucceededFuture(null); - } - final PubSubConnectionEntry entry = name2PubSubConnection.remove(channelName); - if (entry == null) { + if (entry == null || connectionManager.isShuttingDown()) { lock.release(); return RedissonPromise.newSucceededFuture(null); }