Fixed - RLocalCacheMap.readAllValues and readAllEntrySet methods return wrong values #658

pull/660/head
Nikita 8 years ago
parent 4baea4c9f6
commit 6af83a1ca0

@ -840,7 +840,7 @@ public class RedissonLocalCachedMap<K, V> extends RedissonMap<K, V> implements R
"local entries = redis.call('hgetall', KEYS[1]); "
+ "local result = {};"
+ "for j, v in ipairs(entries) do "
+ "if j % 2 == 0 then "
+ "if j % 2 ~= 0 then "
+ "local founded = false;"
+ "for i = 1, #ARGV, 1 do "
+ "if ARGV[i] == entries[j] then "
@ -887,7 +887,7 @@ public class RedissonLocalCachedMap<K, V> extends RedissonMap<K, V> implements R
"local entries = redis.call('hgetall', KEYS[1]); "
+ "local result = {};"
+ "for j, v in ipairs(entries) do "
+ "if j % 2 == 0 then "
+ "if j % 2 ~= 0 then "
+ "local founded = false;"
+ "for i = 1, #ARGV, 1 do "
+ "if ARGV[i] == entries[j] then "

@ -6,6 +6,8 @@ import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.concurrent.ExecutionException;
import org.junit.Assert;
@ -47,6 +49,28 @@ public class RedissonLocalCachedMapTest extends BaseTest {
}
@Test
public void testReadValuesAndEntries() {
RLocalCachedMap<Object, Object> m = redisson.getLocalCachedMap("testValuesWithNearCache2",
LocalCachedMapOptions.defaults());
m.clear();
m.put("a", 1);
m.put("b", 2);
m.put("c", 3);
Set<Integer> expectedValuesSet = new HashSet<>();
expectedValuesSet.add(1);
expectedValuesSet.add(2);
expectedValuesSet.add(3);
HashSet actualValuesSet = new HashSet<>(m.readAllValues());
Assert.assertEquals(expectedValuesSet, actualValuesSet);
Map<String, Integer> expectedMap = new HashMap<>();
expectedMap.put("a", 1);
expectedMap.put("b", 2);
expectedMap.put("c", 3);
Assert.assertEquals(expectedMap.entrySet(), m.readAllEntrySet());
}
@Test
public void testClearEmpty() {
RLocalCachedMap<Object, Object> localCachedMap = redisson.getLocalCachedMap("udi-test",

Loading…
Cancel
Save