diff --git a/redisson/src/main/java/org/redisson/RedissonBuckets.java b/redisson/src/main/java/org/redisson/RedissonBuckets.java index 7b62516ef..9d4777d39 100644 --- a/redisson/src/main/java/org/redisson/RedissonBuckets.java +++ b/redisson/src/main/java/org/redisson/RedissonBuckets.java @@ -87,7 +87,11 @@ public class RedissonBuckets implements RBuckets { @Override public void onSlotResult(Map result) { - results.putAll((Map) (Object) result); + for (Map.Entry entry : result.entrySet()) { + if (entry.getKey() != null && entry.getValue() != null) { + results.put((String) entry.getKey(), (V) entry.getValue()); + } + } } @Override diff --git a/redisson/src/test/java/org/redisson/RedissonBucketsTest.java b/redisson/src/test/java/org/redisson/RedissonBucketsTest.java index c16a147ca..9f1272d5f 100644 --- a/redisson/src/test/java/org/redisson/RedissonBucketsTest.java +++ b/redisson/src/test/java/org/redisson/RedissonBucketsTest.java @@ -4,7 +4,9 @@ import static org.assertj.core.api.Assertions.assertThat; import java.io.IOException; import java.util.HashMap; +import java.util.HashSet; import java.util.Map; +import java.util.Set; import org.junit.Assert; import org.junit.Test; @@ -47,7 +49,9 @@ public class RedissonBucketsTest extends BaseTest { redisson.getBucket("test" + i).set(i); } - Map buckets = redisson.getBuckets().get(map.keySet().toArray(new String[map.size()])); + Set queryKeys = new HashSet<>(map.keySet()); + queryKeys.add("test_invalid"); + Map buckets = redisson.getBuckets().get(queryKeys.toArray(new String[map.size()])); assertThat(buckets).isEqualTo(map); @@ -57,10 +61,10 @@ public class RedissonBucketsTest extends BaseTest { @Test public void testGet() { - RBucket bucket1 = redisson.getBucket("test1"); - bucket1.set("someValue1"); - RBucket bucket3 = redisson.getBucket("test3"); - bucket3.set("someValue3"); + redisson.getBucket("test1").set("someValue1"); + redisson.getBucket("test2").delete(); + redisson.getBucket("test3").set("someValue3"); + redisson.getBucket("test4").delete(); Map result = redisson.getBuckets().get("test1", "test2", "test3", "test4"); Map expected = new HashMap();