From cf74935721d821bf0d768966a7adce6bc474f804 Mon Sep 17 00:00:00 2001 From: Eric Hauser Date: Wed, 6 Apr 2011 23:47:31 -0400 Subject: [PATCH 1/2] fix reversed boolean logic for setbit --- src/main/java/redis/clients/jedis/Client.java | 6 +++--- .../redis/clients/jedis/tests/commands/BitCommandsTest.java | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/redis/clients/jedis/Client.java b/src/main/java/redis/clients/jedis/Client.java index 3bcc072..1306764 100644 --- a/src/main/java/redis/clients/jedis/Client.java +++ b/src/main/java/redis/clients/jedis/Client.java @@ -1,12 +1,12 @@ package redis.clients.jedis; -import static redis.clients.jedis.Protocol.toByteArray; +import redis.clients.util.SafeEncoder; import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; -import redis.clients.util.SafeEncoder; +import static redis.clients.jedis.Protocol.toByteArray; public class Client extends BinaryClient implements Commands { public Client(final String host) { @@ -537,7 +537,7 @@ public class Client extends BinaryClient implements Commands { } public void setbit(final String key, final long offset, final boolean value) { - setbit(SafeEncoder.encode(key), offset, toByteArray(value ? 0 : 1)); + setbit(SafeEncoder.encode(key), offset, toByteArray(value ? 1 : 0)); } public void getbit(String key, long offset) { diff --git a/src/test/java/redis/clients/jedis/tests/commands/BitCommandsTest.java b/src/test/java/redis/clients/jedis/tests/commands/BitCommandsTest.java index 119fc8b..204caa8 100644 --- a/src/test/java/redis/clients/jedis/tests/commands/BitCommandsTest.java +++ b/src/test/java/redis/clients/jedis/tests/commands/BitCommandsTest.java @@ -9,7 +9,7 @@ public class BitCommandsTest extends JedisCommandTestBase { assertEquals(false, bit); bit = jedis.getbit("foo", 0); - assertEquals(false, bit); + assertEquals(true, bit); long bbit = jedis.setbit("bfoo".getBytes(), 0, "1".getBytes()); assertEquals(0, bbit); From 6e1ef5af508d13061bdf1ab4892d6881ccdbdfda Mon Sep 17 00:00:00 2001 From: ewhauser Date: Thu, 28 Apr 2011 14:39:08 -0400 Subject: [PATCH 2/2] adding bit commands to ShardedJedisPipeline --- .../clients/jedis/ShardedJedisPipeline.java | 28 +++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/src/main/java/redis/clients/jedis/ShardedJedisPipeline.java b/src/main/java/redis/clients/jedis/ShardedJedisPipeline.java index ad57c0f..544ce73 100644 --- a/src/main/java/redis/clients/jedis/ShardedJedisPipeline.java +++ b/src/main/java/redis/clients/jedis/ShardedJedisPipeline.java @@ -1,11 +1,11 @@ package redis.clients.jedis; +import redis.clients.jedis.BinaryClient.LIST_POSITION; + import java.util.ArrayList; import java.util.List; import java.util.Map; -import redis.clients.jedis.BinaryClient.LIST_POSITION; - public abstract class ShardedJedisPipeline { private BinaryShardedJedis jedis; private List results = new ArrayList(); @@ -425,6 +425,30 @@ public abstract class ShardedJedisPipeline { results.add(new FutureResult(c)); } + protected void getbit(String key, long offset) { + Client c = jedis.getShard(key).getClient(); + c.getbit(key, offset); + results.add(new FutureResult(c)); + } + + public void setbit(String key, long offset, boolean value) { + Client c = jedis.getShard(key).getClient(); + c.setbit(key, offset, value); + results.add(new FutureResult(c)); + } + + public void setrange(String key, long offset, String value) { + Client c = jedis.getShard(key).getClient(); + c.setrange(key, offset, value); + results.add(new FutureResult(c)); + } + + public void getrange(String key, long startOffset, long endOffset) { + Client c = jedis.getShard(key).getClient(); + c.getrange(key, startOffset, endOffset); + results.add(new FutureResult(c)); + } + public List getResults() { List r = new ArrayList(); for (FutureResult fr : results) {