From 9a448a4ccacfb18bbe0476f1395018033736bf2a Mon Sep 17 00:00:00 2001 From: reta Date: Mon, 17 Mar 2014 19:14:40 -0400 Subject: [PATCH] Fixed NullPointerException in append() in case of pipelinining or/and multi/exec calls --- .../data/redis/core/DefaultValueOperations.java | 3 ++- .../springframework/data/redis/core/RedisTemplateTests.java | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/springframework/data/redis/core/DefaultValueOperations.java b/src/main/java/org/springframework/data/redis/core/DefaultValueOperations.java index 1e148b426d..8490e15349 100644 --- a/src/main/java/org/springframework/data/redis/core/DefaultValueOperations.java +++ b/src/main/java/org/springframework/data/redis/core/DefaultValueOperations.java @@ -83,7 +83,8 @@ public Integer append(K key, String value) { return execute(new RedisCallback() { public Integer doInRedis(RedisConnection connection) { - return connection.append(rawKey, rawString).intValue(); + final Long result = connection.append(rawKey, rawString); + return ( result != null ) ? result.intValue() : null; } }, true); } diff --git a/src/test/java/org/springframework/data/redis/core/RedisTemplateTests.java b/src/test/java/org/springframework/data/redis/core/RedisTemplateTests.java index 57f4e8b73d..37c37eb46e 100644 --- a/src/test/java/org/springframework/data/redis/core/RedisTemplateTests.java +++ b/src/test/java/org/springframework/data/redis/core/RedisTemplateTests.java @@ -221,6 +221,7 @@ public List execute(RedisOperations operations) throws DataAccessExcepti operations.multi(); operations.opsForValue().set("foo", "5"); operations.opsForValue().get("foo"); + operations.opsForValue().append("foo1", "5"); operations.opsForList().leftPush("foolist", "6"); operations.opsForList().range("foolist", 0l, 1l); operations.opsForSet().add("fooset", "7"); @@ -242,7 +243,7 @@ public List execute(RedisOperations operations) throws DataAccessExcepti Map map = new LinkedHashMap(); map.put(10l, 11l); assertThat(results, - isEqual(Arrays.asList(new Object[] { 5l, 1l, list, 1l, longSet, true, tupleSet, zSet, true, map }))); + isEqual(Arrays.asList(new Object[] { 5l, 1L, 1l, list, 1l, longSet, true, tupleSet, zSet, true, map }))); } @Test