Fixed - RListMultimap and RSetMultimap unable to replaceValues with empty collection #4571

pull/4577/head
Nikita Koksharov 2 years ago
parent aadb6cf5d3
commit 35c371cbce

@ -310,7 +310,9 @@ public class RedissonListMultimap<K, V> extends RedissonMultimap<K, V> implement
"redis.call('hset', KEYS[1], ARGV[1], ARGV[2]); " +
"local members = redis.call('lrange', KEYS[2], 0, -1); " +
"redis.call('del', KEYS[2]); " +
"redis.call('rpush', KEYS[2], unpack(ARGV, 3, #ARGV)); " +
"if #ARGV > 2 then " +
"redis.call('rpush', KEYS[2], unpack(ARGV, 3, #ARGV)); " +
"end; " +
"return members; ",
Arrays.<Object>asList(getRawName(), setName), params.toArray());
}

@ -309,7 +309,9 @@ public class RedissonSetMultimap<K, V> extends RedissonMultimap<K, V> implements
"redis.call('hset', KEYS[1], ARGV[1], ARGV[2]); " +
"local members = redis.call('smembers', KEYS[2]); " +
"redis.call('del', KEYS[2]); " +
"redis.call('sadd', KEYS[2], unpack(ARGV, 3, #ARGV)); " +
"if #ARGV > 2 then " +
"redis.call('sadd', KEYS[2], unpack(ARGV, 3, #ARGV)); " +
"end; " +
"return members; ",
Arrays.<Object>asList(getRawName(), setName), params.toArray());
}

@ -362,6 +362,12 @@ public class RedissonListMultimapTest extends BaseTest {
List<SimpleValue> allValues = map.getAll(new SimpleKey("0"));
assertThat(allValues).containsExactlyElementsOf(values);
List<SimpleValue> oldValues2 = map.replaceValues(new SimpleKey("0"), Collections.emptyList());
assertThat(oldValues2).containsExactlyElementsOf(values);
List<SimpleValue> vals = map.getAll(new SimpleKey("0"));
assertThat(vals).isEmpty();
}
@Test

@ -429,7 +429,14 @@ public class RedissonSetMultimapTest extends BaseTest {
assertThat(oldValues).containsOnly(new SimpleValue("1"));
Set<SimpleValue> allValues = map.getAll(new SimpleKey("0"));
assertThat(allValues).containsOnlyElementsOf(values);
assertThat(allValues).containsExactlyElementsOf(values);
Set<SimpleValue> oldValues2 = map.replaceValues(new SimpleKey("0"), Collections.emptyList());
assertThat(oldValues2).containsExactlyElementsOf(values);
Set<SimpleValue> vals = map.getAll(new SimpleKey("0"));
assertThat(vals).isEmpty();
}
@Test

Loading…
Cancel
Save