From 9f4faf53ffdc87387d84bb9b4d1b1a9de393afed Mon Sep 17 00:00:00 2001 From: Ivan Dyedov Date: Tue, 26 Aug 2014 11:50:56 -0400 Subject: [PATCH] fix binary version of hgetAll(), fixes #711 --- .../redis/clients/jedis/BuilderFactory.java | 3 ++- .../tests/commands/HashesCommandsTest.java | 20 ++++++++++++++++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/src/main/java/redis/clients/jedis/BuilderFactory.java b/src/main/java/redis/clients/jedis/BuilderFactory.java index 76d013e..10bf457 100755 --- a/src/main/java/redis/clients/jedis/BuilderFactory.java +++ b/src/main/java/redis/clients/jedis/BuilderFactory.java @@ -9,6 +9,7 @@ import java.util.List; import java.util.Map; import java.util.Set; +import redis.clients.util.JedisByteHashMap; import redis.clients.util.SafeEncoder; public class BuilderFactory { @@ -170,7 +171,7 @@ public class BuilderFactory { @SuppressWarnings("unchecked") public Map build(Object data) { final List flatHash = (List) data; - final Map hash = new HashMap(); + final Map hash = new JedisByteHashMap(); final Iterator iterator = flatHash.iterator(); while (iterator.hasNext()) { hash.put(iterator.next(), iterator.next()); diff --git a/src/test/java/redis/clients/jedis/tests/commands/HashesCommandsTest.java b/src/test/java/redis/clients/jedis/tests/commands/HashesCommandsTest.java index 229b2ac..a2da021 100644 --- a/src/test/java/redis/clients/jedis/tests/commands/HashesCommandsTest.java +++ b/src/test/java/redis/clients/jedis/tests/commands/HashesCommandsTest.java @@ -9,9 +9,11 @@ import java.util.Map; import java.util.Set; import org.junit.Test; - +import redis.clients.jedis.Pipeline; +import redis.clients.jedis.Response; import redis.clients.jedis.ScanParams; import redis.clients.jedis.ScanResult; + import static redis.clients.jedis.ScanParams.SCAN_POINTER_START; import static redis.clients.jedis.ScanParams.SCAN_POINTER_START_BINARY; @@ -316,6 +318,22 @@ public class HashesCommandsTest extends JedisCommandTestBase { assertArrayEquals(bbar, bhash.get(bcar)); } + @Test + public void hgetAllPipeline() { + Map bh = new HashMap(); + bh.put(bbar, bcar); + bh.put(bcar, bbar); + jedis.hmset(bfoo, bh); + Pipeline pipeline = jedis.pipelined(); + Response> bhashResponse = pipeline.hgetAll(bfoo); + pipeline.sync(); + Map bhash = bhashResponse.get(); + + assertEquals(2, bhash.size()); + assertArrayEquals(bcar, bhash.get(bbar)); + assertArrayEquals(bbar, bhash.get(bcar)); + } + @Test public void hscan() { jedis.hset("foo", "b", "b");