From bfc2d25ecb3e72560e9be557a447c4e49263618f Mon Sep 17 00:00:00 2001 From: Nikita Koksharov Date: Mon, 14 Jan 2019 13:37:05 +0300 Subject: [PATCH] Fixed - RedissonTopic.removeListener throws RejectedExecutionException --- .../java/org/redisson/pubsub/PublishSubscribeService.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/redisson/src/main/java/org/redisson/pubsub/PublishSubscribeService.java b/redisson/src/main/java/org/redisson/pubsub/PublishSubscribeService.java index de9f38b41..9742e61ff 100644 --- a/redisson/src/main/java/org/redisson/pubsub/PublishSubscribeService.java +++ b/redisson/src/main/java/org/redisson/pubsub/PublishSubscribeService.java @@ -304,6 +304,10 @@ 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) { lock.release(); @@ -333,6 +337,10 @@ public class PublishSubscribeService { } public RFuture unsubscribe(final ChannelName channelName, final PubSubType topicType) { + if (connectionManager.isShuttingDown()) { + return RedissonPromise.newSucceededFuture(null); + } + final RPromise result = new RedissonPromise(); final AsyncSemaphore lock = getSemaphore(channelName); lock.acquire(new Runnable() {