diff --git a/src/main/java/redis/clients/jedis/Response.java b/src/main/java/redis/clients/jedis/Response.java index a662c10..058985f 100644 --- a/src/main/java/redis/clients/jedis/Response.java +++ b/src/main/java/redis/clients/jedis/Response.java @@ -24,10 +24,12 @@ public class Response { "Please close pipeline or multi block before calling this method."); } if (!built) { - if (data instanceof JedisDataException){ - throw new JedisDataException((JedisDataException)data); + if(data != null ){ + if (data instanceof JedisDataException){ + throw new JedisDataException((JedisDataException)data); + } + response = builder.build(data); } - response = builder.build(data); this.data = null; built = true; } diff --git a/src/test/java/redis/clients/jedis/tests/PipeliningTest.java b/src/test/java/redis/clients/jedis/tests/PipeliningTest.java index 2a409d3..2b02279 100644 --- a/src/test/java/redis/clients/jedis/tests/PipeliningTest.java +++ b/src/test/java/redis/clients/jedis/tests/PipeliningTest.java @@ -89,6 +89,29 @@ public class PipeliningTest extends Assert { assertEquals(1, smembers.get().size()); assertEquals(1, zrangeWithScores.get().size()); } + + @Test + public void pipelineResponseWithData() { + jedis.zadd("zset", 1, "foo"); + + Pipeline p = jedis.pipelined(); + Response score = p.zscore("zset", "foo"); + p.sync(); + + assertNotNull(score.get()); + } + + @Test + public void pipelineResponseWithoutData() { + jedis.zadd("zset", 1, "foo"); + + Pipeline p = jedis.pipelined(); + Response score = p.zscore("zset", "bar"); + p.sync(); + + assertNull(score.get()); + } + @Test(expected = JedisDataException.class) public void pipelineResponseWithinPipeline() {