diff --git a/src/main/java/org/springframework/data/redis/core/DefaultReactiveHashOperations.java b/src/main/java/org/springframework/data/redis/core/DefaultReactiveHashOperations.java index 756a4d661e..90f6c5e8bd 100644 --- a/src/main/java/org/springframework/data/redis/core/DefaultReactiveHashOperations.java +++ b/src/main/java/org/springframework/data/redis/core/DefaultReactiveHashOperations.java @@ -277,7 +277,7 @@ private List deserializeHashValues(List source) { List values = new ArrayList<>(source.size()); for (ByteBuffer byteBuffer : source) { - values.add(readHashValue(byteBuffer)); + values.add(byteBuffer == null ? null : readHashValue(byteBuffer)); } return values; } diff --git a/src/test/java/org/springframework/data/redis/core/DefaultReactiveHashOperationsIntegrationTests.java b/src/test/java/org/springframework/data/redis/core/DefaultReactiveHashOperationsIntegrationTests.java index 25b203f450..354b7bd6c3 100644 --- a/src/test/java/org/springframework/data/redis/core/DefaultReactiveHashOperationsIntegrationTests.java +++ b/src/test/java/org/springframework/data/redis/core/DefaultReactiveHashOperationsIntegrationTests.java @@ -178,6 +178,12 @@ public void multiGet() { HK hashkey2 = hashKeyFactory.instance(); HV hashvalue2 = hashValueFactory.instance(); + StepVerifier.create(hashOperations.multiGet(key, Arrays.asList(hashkey1, hashkey2))) // + .consumeNextWith(actual -> { + assertThat(actual).hasSize(2).containsSequence(null, null); + }) // + .verifyComplete(); + putAll(key, hashkey1, hashvalue1, hashkey2, hashvalue2); StepVerifier.create(hashOperations.multiGet(key, Arrays.asList(hashkey1, hashkey2))) //