From f3a5d62e2b9a6a608343d4a816be45cfa53ce41b Mon Sep 17 00:00:00 2001 From: ivos Date: Wed, 14 Dec 2011 05:43:52 +0100 Subject: [PATCH] Issue #158 is fixed: Response.get() returns null if redis returned null (i.e. when using zscore for a non existing member) --- .../java/redis/clients/jedis/Response.java | 8 ++++--- .../clients/jedis/tests/PipeliningTest.java | 23 +++++++++++++++++++ 2 files changed, 28 insertions(+), 3 deletions(-) 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 a7aa22c..1b18e52 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() {