Incorrect map key encoding makes hmget return no fields when string keys are used

pull/150/head
Sam Kenny 10 years ago
parent a20e3fc4d4
commit 3d6170618a

@ -415,7 +415,7 @@ public class RedisAsyncConnection<K, V> extends ChannelInboundHandlerAdapter {
}
public Future<List<V>> hmget(K key, K... fields) {
CommandArgs<K, V> args = new CommandArgs<K, V>(codec).addKey(key).addKeys(fields);
CommandArgs<K, V> args = new CommandArgs<K, V>(codec).addKey(key).addMapKeys(fields);
return dispatch(HMGET, new ValueListOutput<K, V>(codec), args);
}

@ -146,6 +146,22 @@ public class RedissonMapTest extends BaseTest {
Assert.assertEquals(expectedMap, filtered);
}
@Test
public void testGetAllWithStringKeys() {
RMap<String, Integer> map = redisson.getMap("getAllStrings");
map.put("A", 100);
map.put("B", 200);
map.put("C", 300);
map.put("D", 400);
Map<String, Integer> filtered = map.getAll(new HashSet<String>(Arrays.asList("B", "C", "E")));
Map<String, Integer> expectedMap = new HashMap<String, Integer>();
expectedMap.put("B", 200);
expectedMap.put("C", 300);
Assert.assertEquals(expectedMap, filtered);
}
@Test
public void testFilterKeys() {
RMap<Integer, Integer> map = redisson.getMap("filterKeys");

Loading…
Cancel
Save