diff --git a/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceConnection.java b/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceConnection.java index 44456ac31..9bd87dec3 100644 --- a/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceConnection.java +++ b/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceConnection.java @@ -800,7 +800,7 @@ public class LettuceConnection extends AbstractRedisConnection { } try { - subscription = new LettuceSubscription(listener, switchToPubSub(), connectionProvider); + subscription = initSubscription(listener); subscription.pSubscribe(patterns); } catch (Exception ex) { throw convertLettuceAccessException(ex); @@ -821,7 +821,7 @@ public class LettuceConnection extends AbstractRedisConnection { } try { - subscription = new LettuceSubscription(listener, switchToPubSub(), connectionProvider); + subscription = initSubscription(listener); subscription.subscribe(channels); } catch (Exception ex) { throw convertLettuceAccessException(ex); @@ -868,6 +868,10 @@ public class LettuceConnection extends AbstractRedisConnection { return connectionProvider.getConnection(StatefulRedisPubSubConnection.class); } + private LettuceSubscription initSubscription(MessageListener listener) { + return new LettuceSubscription(listener, switchToPubSub(), connectionProvider); + } + void pipeline(LettuceResult result) { if (isQueueing()) { transaction(result); diff --git a/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceSubscription.java b/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceSubscription.java index f6cb2239a..4076397b8 100644 --- a/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceSubscription.java +++ b/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceSubscription.java @@ -26,6 +26,7 @@ import org.springframework.data.redis.connection.util.AbstractSubscription; * * @author Costin Leau * @author Mark Paluch + * @author Christoph Strobl */ class LettuceSubscription extends AbstractSubscription { @@ -82,7 +83,8 @@ class LettuceSubscription extends AbstractSubscription { * @see org.springframework.data.redis.connection.util.AbstractSubscription#doPUnsubscribe(boolean, byte[][]) */ protected void doPUnsubscribe(boolean all, byte[]... patterns) { - // lettuce doesn't automatically unsubscribe from all patterns + + // ignore `all` flag as Lettuce unsubscribes from all patterns if none provided. pubsub.punsubscribe(patterns); } @@ -99,7 +101,8 @@ class LettuceSubscription extends AbstractSubscription { * @see org.springframework.data.redis.connection.util.AbstractSubscription#doUnsubscribe(boolean, byte[][]) */ protected void doUnsubscribe(boolean all, byte[]... channels) { - // lettuce doesn't automatically unsubscribe from all channels + + // ignore `all` flag as Lettuce unsubscribes from all channels if none provided. pubsub.unsubscribe(channels); }