From fb723db86de2078751ba8c12e1d730abbe122357 Mon Sep 17 00:00:00 2001 From: ivos Date: Wed, 14 Dec 2011 05:43:52 +0100 Subject: [PATCH 1/2] 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 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() { From c9b413c323df9ea47c1c72af6f85d37c14e5db44 Mon Sep 17 00:00:00 2001 From: ivowiblo Date: Tue, 17 Apr 2012 16:40:54 -0400 Subject: [PATCH 2/2] Select support to pipeline. Thanks to @ib84 --- src/main/java/redis/clients/jedis/Pipeline.java | 5 +++++ .../java/redis/clients/jedis/tests/PipeliningTest.java | 7 +++++++ 2 files changed, 12 insertions(+) diff --git a/src/main/java/redis/clients/jedis/Pipeline.java b/src/main/java/redis/clients/jedis/Pipeline.java index 95bc773..520e975 100644 --- a/src/main/java/redis/clients/jedis/Pipeline.java +++ b/src/main/java/redis/clients/jedis/Pipeline.java @@ -1226,4 +1226,9 @@ public class Pipeline extends Queable { client.randomKey(); return getResponse(BuilderFactory.STRING); } + + public Response select(int index){ + client.select(index); + return getResponse(BuilderFactory.STRING); + } } \ No newline at end of file diff --git a/src/test/java/redis/clients/jedis/tests/PipeliningTest.java b/src/test/java/redis/clients/jedis/tests/PipeliningTest.java index 1b18e52..0a2f7d4 100644 --- a/src/test/java/redis/clients/jedis/tests/PipeliningTest.java +++ b/src/test/java/redis/clients/jedis/tests/PipeliningTest.java @@ -101,6 +101,13 @@ public class PipeliningTest extends Assert { assertNotNull(score.get()); } + @Test + public void pipelineSelect() { + Pipeline p = jedis.pipelined(); + p.select(1); + p.sync(); + } + @Test public void pipelineResponseWithoutData() { jedis.zadd("zset", 1, "foo");