diff --git a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/connection/jedis/JedisConnection.java b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/connection/jedis/JedisConnection.java index dc7069f47..86a6913c3 100644 --- a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/connection/jedis/JedisConnection.java +++ b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/connection/jedis/JedisConnection.java @@ -1619,7 +1619,7 @@ public class JedisConnection implements RedisConnection { String[] pats = JedisUtils.convert(patterns); JedisPubSub jedisPubSub = JedisUtils.adaptPubSub(listener); - subscription = new JedisSubscription(listener, jedisPubSub); + subscription = new JedisSubscription(listener, jedisPubSub, null, patterns); jedis.psubscribe(jedisPubSub, pats); } catch (Exception ex) { throw convertJedisAccessException(ex); @@ -1641,7 +1641,7 @@ public class JedisConnection implements RedisConnection { String[] chs = JedisUtils.convert(channels); JedisPubSub jedisPubSub = JedisUtils.adaptPubSub(listener); - subscription = new JedisSubscription(listener, jedisPubSub); + subscription = new JedisSubscription(listener, jedisPubSub, channels, null); jedis.subscribe(jedisPubSub, chs); } catch (Exception ex) { throw convertJedisAccessException(ex); diff --git a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/connection/jedis/JedisSubscription.java b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/connection/jedis/JedisSubscription.java index c18107995..de69b89aa 100644 --- a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/connection/jedis/JedisSubscription.java +++ b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/connection/jedis/JedisSubscription.java @@ -38,10 +38,22 @@ class JedisSubscription implements Subscription { private final Collection channels = new ArrayList(2); private final Collection patterns = new ArrayList(2); - JedisSubscription(MessageListener listener, JedisPubSub jedisPubSub) { + JedisSubscription(MessageListener listener, JedisPubSub jedisPubSub, byte[][] channels, byte[][] patterns) { Assert.notNull(listener); this.listener = listener; this.jedisPubSub = jedisPubSub; + + if (!ObjectUtils.isArray(channels)) { + for (byte[] bs : channels) { + this.channels.add(bs); + } + } + + if (!ObjectUtils.isArray(patterns)) { + for (byte[] bs : patterns) { + this.patterns.add(bs); + } + } } @Override