fix binary version of hgetAll(), fixes #711
This commit is contained in:
@@ -9,6 +9,7 @@ import java.util.List;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
|
import redis.clients.util.JedisByteHashMap;
|
||||||
import redis.clients.util.SafeEncoder;
|
import redis.clients.util.SafeEncoder;
|
||||||
|
|
||||||
public class BuilderFactory {
|
public class BuilderFactory {
|
||||||
@@ -170,7 +171,7 @@ public class BuilderFactory {
|
|||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
public Map<byte[], byte[]> build(Object data) {
|
public Map<byte[], byte[]> build(Object data) {
|
||||||
final List<byte[]> flatHash = (List<byte[]>) data;
|
final List<byte[]> flatHash = (List<byte[]>) data;
|
||||||
final Map<byte[], byte[]> hash = new HashMap<byte[], byte[]>();
|
final Map<byte[], byte[]> hash = new JedisByteHashMap();
|
||||||
final Iterator<byte[]> iterator = flatHash.iterator();
|
final Iterator<byte[]> iterator = flatHash.iterator();
|
||||||
while (iterator.hasNext()) {
|
while (iterator.hasNext()) {
|
||||||
hash.put(iterator.next(), iterator.next());
|
hash.put(iterator.next(), iterator.next());
|
||||||
|
|||||||
@@ -9,9 +9,11 @@ import java.util.Map;
|
|||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
import redis.clients.jedis.Pipeline;
|
||||||
|
import redis.clients.jedis.Response;
|
||||||
import redis.clients.jedis.ScanParams;
|
import redis.clients.jedis.ScanParams;
|
||||||
import redis.clients.jedis.ScanResult;
|
import redis.clients.jedis.ScanResult;
|
||||||
|
|
||||||
import static redis.clients.jedis.ScanParams.SCAN_POINTER_START;
|
import static redis.clients.jedis.ScanParams.SCAN_POINTER_START;
|
||||||
import static redis.clients.jedis.ScanParams.SCAN_POINTER_START_BINARY;
|
import static redis.clients.jedis.ScanParams.SCAN_POINTER_START_BINARY;
|
||||||
|
|
||||||
@@ -316,6 +318,22 @@ public class HashesCommandsTest extends JedisCommandTestBase {
|
|||||||
assertArrayEquals(bbar, bhash.get(bcar));
|
assertArrayEquals(bbar, bhash.get(bcar));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void hgetAllPipeline() {
|
||||||
|
Map<byte[], byte[]> bh = new HashMap<byte[], byte[]>();
|
||||||
|
bh.put(bbar, bcar);
|
||||||
|
bh.put(bcar, bbar);
|
||||||
|
jedis.hmset(bfoo, bh);
|
||||||
|
Pipeline pipeline = jedis.pipelined();
|
||||||
|
Response<Map<byte[], byte[]>> bhashResponse = pipeline.hgetAll(bfoo);
|
||||||
|
pipeline.sync();
|
||||||
|
Map<byte[], byte[]> bhash = bhashResponse.get();
|
||||||
|
|
||||||
|
assertEquals(2, bhash.size());
|
||||||
|
assertArrayEquals(bcar, bhash.get(bbar));
|
||||||
|
assertArrayEquals(bbar, bhash.get(bcar));
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void hscan() {
|
public void hscan() {
|
||||||
jedis.hset("foo", "b", "b");
|
jedis.hset("foo", "b", "b");
|
||||||
|
|||||||
Reference in New Issue
Block a user