From 431ae79ff161f9f1e20f4b8713d370b0f561eb6d Mon Sep 17 00:00:00 2001 From: Jungtaek Lim Date: Thu, 28 Aug 2014 18:14:49 +0900 Subject: [PATCH] Follow up changes on "pubsub numsub" output * String, String to String, Long * We're avoiding to break backward compatibility ** convert Long to String so that return type is same to old type --- .../redis/clients/jedis/BuilderFactory.java | 20 +++++++++++++++++++ src/main/java/redis/clients/jedis/Jedis.java | 2 +- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/main/java/redis/clients/jedis/BuilderFactory.java b/src/main/java/redis/clients/jedis/BuilderFactory.java index 10bf457..8c119b6 100755 --- a/src/main/java/redis/clients/jedis/BuilderFactory.java +++ b/src/main/java/redis/clients/jedis/BuilderFactory.java @@ -105,6 +105,26 @@ public class BuilderFactory { }; + public static final Builder> PUBSUB_NUMSUB_MAP = new Builder>() { + @SuppressWarnings("unchecked") + public Map build(Object data) { + final List flatHash = (List) data; + final Map hash = new HashMap(); + final Iterator iterator = flatHash.iterator(); + while (iterator.hasNext()) { + hash.put(SafeEncoder.encode((byte[]) iterator.next()), + String.valueOf((Long) iterator.next())); + } + + return hash; + } + + public String toString() { + return "PUBSUB_NUMSUB_MAP"; + } + + }; + public static final Builder> STRING_SET = new Builder>() { @SuppressWarnings("unchecked") public Set build(Object data) { diff --git a/src/main/java/redis/clients/jedis/Jedis.java b/src/main/java/redis/clients/jedis/Jedis.java index 49569e2..1f4fcde 100644 --- a/src/main/java/redis/clients/jedis/Jedis.java +++ b/src/main/java/redis/clients/jedis/Jedis.java @@ -3388,7 +3388,7 @@ public class Jedis extends BinaryJedis implements JedisCommands, public Map pubsubNumSub(String... channels) { checkIsInMulti(); client.pubsubNumSub(channels); - return BuilderFactory.STRING_MAP + return BuilderFactory.PUBSUB_NUMSUB_MAP .build(client.getBinaryMultiBulkReply()); }