diff --git a/redisson/src/main/java/org/redisson/RedissonLocalCachedMap.java b/redisson/src/main/java/org/redisson/RedissonLocalCachedMap.java index b4322785b..06c0d1a84 100644 --- a/redisson/src/main/java/org/redisson/RedissonLocalCachedMap.java +++ b/redisson/src/main/java/org/redisson/RedissonLocalCachedMap.java @@ -737,6 +737,7 @@ public class RedissonLocalCachedMap extends RedissonMap implements R params.add(mapKey); params.add(mapValue); CacheKey cacheKey = localCacheView.toCacheKey(mapKey); + cachePut(cacheKey, t.getKey(), t.getValue()); hashes[i] = cacheKey.getKeyHash(); i++; } @@ -784,12 +785,7 @@ public class RedissonLocalCachedMap extends RedissonMap implements R + "end;", Arrays.asList(getRawName(), listener.getInvalidationTopicName(), listener.getUpdatesLogName()), params.toArray()); - - CompletionStage f = future.thenApply(res -> { - cacheMap(map); - return null; - }); - return new CompletableFutureWrapper<>(f); + return new CompletableFutureWrapper<>(future); } @Override diff --git a/redisson/src/test/java/org/redisson/RedissonLocalCachedMapTest.java b/redisson/src/test/java/org/redisson/RedissonLocalCachedMapTest.java index 68c301cae..3d9a19874 100644 --- a/redisson/src/test/java/org/redisson/RedissonLocalCachedMapTest.java +++ b/redisson/src/test/java/org/redisson/RedissonLocalCachedMapTest.java @@ -878,6 +878,18 @@ public class RedissonLocalCachedMapTest extends BaseMapTest { assertThat(cache1.size()).isEqualTo(3); } + @Test + public void testPutAllRMap() { + RLocalCachedMap map = redisson.getLocalCachedMap(LocalCachedMapOptions.name("test")); + RLocalCachedMap map1 = redisson.getLocalCachedMap(LocalCachedMapOptions.name("test01")); + map.put(1, "1"); + map.put(2, "2"); + map.put(3, "3"); + map1.putAll(map); + assertThat(map).hasSize(3); + assertThat(map1).hasSize(3); + } + @Test public void testGetBeforePut() { RLocalCachedMap map1 = redisson.getLocalCachedMap(LocalCachedMapOptions.name("test"));