From ce1156be44ea2b17073942ad5c60a78b566ed8e8 Mon Sep 17 00:00:00 2001 From: Vijay Ramesh Date: Thu, 3 Apr 2014 16:27:52 -0700 Subject: [PATCH 1/2] JedisSentinelPool#return[Broken]Resource should handle nulls the same was as JedisPool --- .../clients/jedis/JedisSentinelPool.java | 10 ++++--- .../jedis/tests/JedisSentinelPoolTest.java | 26 +++++++++++++++++++ 2 files changed, 33 insertions(+), 3 deletions(-) diff --git a/src/main/java/redis/clients/jedis/JedisSentinelPool.java b/src/main/java/redis/clients/jedis/JedisSentinelPool.java index 4fe5433..224ca99 100644 --- a/src/main/java/redis/clients/jedis/JedisSentinelPool.java +++ b/src/main/java/redis/clients/jedis/JedisSentinelPool.java @@ -75,12 +75,16 @@ public class JedisSentinelPool extends Pool { } public void returnBrokenResource(final Jedis resource) { - returnBrokenResourceObject(resource); + if (resource != null) { + returnBrokenResourceObject(resource); + } } public void returnResource(final Jedis resource) { - resource.resetState(); - returnResourceObject(resource); + if (resource != null) { + resource.resetState(); + returnResourceObject(resource); + } } private volatile HostAndPort currentHostMaster; diff --git a/src/test/java/redis/clients/jedis/tests/JedisSentinelPoolTest.java b/src/test/java/redis/clients/jedis/tests/JedisSentinelPoolTest.java index c8df9c5..1dd2896 100644 --- a/src/test/java/redis/clients/jedis/tests/JedisSentinelPoolTest.java +++ b/src/test/java/redis/clients/jedis/tests/JedisSentinelPoolTest.java @@ -80,6 +80,32 @@ public class JedisSentinelPoolTest extends JedisTestBase { } } + @Test + public void returnResourceWithNullResource() { + GenericObjectPoolConfig config = new GenericObjectPoolConfig(); + config.setMaxTotal(1); + config.setBlockWhenExhausted(false); + JedisSentinelPool pool = new JedisSentinelPool(MASTER_NAME, sentinels, + config, 1000, "foobared", 2); + + Jedis nullJedis = null; + pool.returnResource(nullJedis); + pool.destroy(); + } + + @Test + public void returnBrokenResourceWithNullResource() { + GenericObjectPoolConfig config = new GenericObjectPoolConfig(); + config.setMaxTotal(1); + config.setBlockWhenExhausted(false); + JedisSentinelPool pool = new JedisSentinelPool(MASTER_NAME, sentinels, + config, 1000, "foobared", 2); + + Jedis nullJedis = null; + pool.returnBrokenResource(nullJedis); + pool.destroy(); + } + private void forceFailover(JedisSentinelPool pool) throws InterruptedException { HostAndPort oldMaster = pool.getCurrentHostMaster(); From ac53759f9706b52184963e98af11d2e44bfb1297 Mon Sep 17 00:00:00 2001 From: Jungtaek Lim Date: Sat, 5 Apr 2014 18:46:06 +0900 Subject: [PATCH 2/2] Revert "Add support for HLL" This reverts commit afefb71e57b0258a52b465b2b4e57c132aef4db9. --- .../redis/clients/jedis/BinaryClient.java | 13 +----- src/main/java/redis/clients/jedis/Client.java | 12 ----- src/main/java/redis/clients/jedis/Jedis.java | 18 -------- .../java/redis/clients/jedis/Protocol.java | 2 +- .../commands/HyperLogLogCommandsTest.java | 46 ------------------- 5 files changed, 2 insertions(+), 89 deletions(-) delete mode 100644 src/test/java/redis/clients/jedis/tests/commands/HyperLogLogCommandsTest.java diff --git a/src/main/java/redis/clients/jedis/BinaryClient.java b/src/main/java/redis/clients/jedis/BinaryClient.java index bbd0f8f..2377665 100644 --- a/src/main/java/redis/clients/jedis/BinaryClient.java +++ b/src/main/java/redis/clients/jedis/BinaryClient.java @@ -320,7 +320,7 @@ public class BinaryClient extends Connection { public void sadd(final byte[] key, final byte[]... members) { sendCommand(SADD, joinParameters(key, members)); } - + public void smembers(final byte[] key) { sendCommand(SMEMBERS, key); } @@ -1253,15 +1253,4 @@ public class BinaryClient extends Connection { public void asking() { sendCommand(Command.ASKING); } - - public void pfadd(final byte[] key, final byte[]... elements) { - sendCommand(PFADD, joinParameters(key, elements)); - } - - public void pfcount(final byte[] key) { - sendCommand(PFCOUNT, key); - } - public void pfmerge(final byte[] deskey, final byte[]... sourcekeys) { - sendCommand(PFMERGE, joinParameters(deskey, sourcekeys)); - } } diff --git a/src/main/java/redis/clients/jedis/Client.java b/src/main/java/redis/clients/jedis/Client.java index f6b9529..64f6f5c 100644 --- a/src/main/java/redis/clients/jedis/Client.java +++ b/src/main/java/redis/clients/jedis/Client.java @@ -951,16 +951,4 @@ public class Client extends BinaryClient implements Commands { cluster(Protocol.CLUSTER_SETSLOT, String.valueOf(slot), Protocol.CLUSTER_SETSLOT_IMPORTING, nodeId); } - - public void pfadd(String key, final String... elements) { - pfadd(SafeEncoder.encode(key), SafeEncoder.encodeMany(elements)); - } - - public void pfcount(final String key) { - pfcount(SafeEncoder.encode(key)); - } - - public void pfmerge(final String destkey, final String... sourcekeys) { - pfmerge(SafeEncoder.encode(destkey), SafeEncoder.encodeMany(sourcekeys)); - } } diff --git a/src/main/java/redis/clients/jedis/Jedis.java b/src/main/java/redis/clients/jedis/Jedis.java index 188140f..4961f42 100644 --- a/src/main/java/redis/clients/jedis/Jedis.java +++ b/src/main/java/redis/clients/jedis/Jedis.java @@ -3412,22 +3412,4 @@ public class Jedis extends BinaryJedis implements JedisCommands, return BuilderFactory.STRING_MAP .build(client.getBinaryMultiBulkReply()); } - - public Long pfadd(final String key, String... elements) { - checkIsInMulti(); - client.pfadd(key, elements); - return client.getIntegerReply(); - } - - public long pfcount(final String key) { - checkIsInMulti(); - client.pfcount(key); - return client.getIntegerReply(); - } - - public String pfmerge(final String destkey, final String... sourcekeys) { - checkIsInMulti(); - client.pfmerge(destkey, sourcekeys); - return client.getStatusCodeReply(); - } } diff --git a/src/main/java/redis/clients/jedis/Protocol.java b/src/main/java/redis/clients/jedis/Protocol.java index 5ceccaa..681bc56 100644 --- a/src/main/java/redis/clients/jedis/Protocol.java +++ b/src/main/java/redis/clients/jedis/Protocol.java @@ -208,7 +208,7 @@ public final class Protocol { } public static enum Command { - PING, SET, GET, QUIT, EXISTS, DEL, TYPE, FLUSHDB, KEYS, RANDOMKEY, RENAME, RENAMENX, RENAMEX, DBSIZE, EXPIRE, EXPIREAT, TTL, SELECT, MOVE, FLUSHALL, GETSET, MGET, SETNX, SETEX, MSET, MSETNX, DECRBY, DECR, INCRBY, INCR, APPEND, SUBSTR, HSET, HGET, HSETNX, HMSET, HMGET, HINCRBY, HEXISTS, HDEL, HLEN, HKEYS, HVALS, HGETALL, RPUSH, LPUSH, LLEN, LRANGE, LTRIM, LINDEX, LSET, LREM, LPOP, RPOP, RPOPLPUSH, SADD, SMEMBERS, SREM, SPOP, SMOVE, SCARD, SISMEMBER, SINTER, SINTERSTORE, SUNION, SUNIONSTORE, SDIFF, SDIFFSTORE, SRANDMEMBER, ZADD, ZRANGE, ZREM, ZINCRBY, ZRANK, ZREVRANK, ZREVRANGE, ZCARD, ZSCORE, MULTI, DISCARD, EXEC, WATCH, UNWATCH, SORT, BLPOP, BRPOP, AUTH, SUBSCRIBE, PUBLISH, UNSUBSCRIBE, PSUBSCRIBE, PUNSUBSCRIBE, PUBSUB, ZCOUNT, ZRANGEBYSCORE, ZREVRANGEBYSCORE, ZREMRANGEBYRANK, ZREMRANGEBYSCORE, ZUNIONSTORE, ZINTERSTORE, SAVE, BGSAVE, BGREWRITEAOF, LASTSAVE, SHUTDOWN, INFO, MONITOR, SLAVEOF, CONFIG, STRLEN, SYNC, LPUSHX, PERSIST, RPUSHX, ECHO, LINSERT, DEBUG, BRPOPLPUSH, SETBIT, GETBIT, SETRANGE, GETRANGE, EVAL, EVALSHA, SCRIPT, SLOWLOG, OBJECT, BITCOUNT, BITOP, SENTINEL, DUMP, RESTORE, PEXPIRE, PEXPIREAT, PTTL, INCRBYFLOAT, PSETEX, CLIENT, TIME, MIGRATE, HINCRBYFLOAT, SCAN, HSCAN, SSCAN, ZSCAN, WAIT, CLUSTER, ASKING, PFADD, PFCOUNT, PFMERGE; + PING, SET, GET, QUIT, EXISTS, DEL, TYPE, FLUSHDB, KEYS, RANDOMKEY, RENAME, RENAMENX, RENAMEX, DBSIZE, EXPIRE, EXPIREAT, TTL, SELECT, MOVE, FLUSHALL, GETSET, MGET, SETNX, SETEX, MSET, MSETNX, DECRBY, DECR, INCRBY, INCR, APPEND, SUBSTR, HSET, HGET, HSETNX, HMSET, HMGET, HINCRBY, HEXISTS, HDEL, HLEN, HKEYS, HVALS, HGETALL, RPUSH, LPUSH, LLEN, LRANGE, LTRIM, LINDEX, LSET, LREM, LPOP, RPOP, RPOPLPUSH, SADD, SMEMBERS, SREM, SPOP, SMOVE, SCARD, SISMEMBER, SINTER, SINTERSTORE, SUNION, SUNIONSTORE, SDIFF, SDIFFSTORE, SRANDMEMBER, ZADD, ZRANGE, ZREM, ZINCRBY, ZRANK, ZREVRANK, ZREVRANGE, ZCARD, ZSCORE, MULTI, DISCARD, EXEC, WATCH, UNWATCH, SORT, BLPOP, BRPOP, AUTH, SUBSCRIBE, PUBLISH, UNSUBSCRIBE, PSUBSCRIBE, PUNSUBSCRIBE, PUBSUB, ZCOUNT, ZRANGEBYSCORE, ZREVRANGEBYSCORE, ZREMRANGEBYRANK, ZREMRANGEBYSCORE, ZUNIONSTORE, ZINTERSTORE, SAVE, BGSAVE, BGREWRITEAOF, LASTSAVE, SHUTDOWN, INFO, MONITOR, SLAVEOF, CONFIG, STRLEN, SYNC, LPUSHX, PERSIST, RPUSHX, ECHO, LINSERT, DEBUG, BRPOPLPUSH, SETBIT, GETBIT, SETRANGE, GETRANGE, EVAL, EVALSHA, SCRIPT, SLOWLOG, OBJECT, BITCOUNT, BITOP, SENTINEL, DUMP, RESTORE, PEXPIRE, PEXPIREAT, PTTL, INCRBYFLOAT, PSETEX, CLIENT, TIME, MIGRATE, HINCRBYFLOAT, SCAN, HSCAN, SSCAN, ZSCAN, WAIT, CLUSTER, ASKING; public final byte[] raw; diff --git a/src/test/java/redis/clients/jedis/tests/commands/HyperLogLogCommandsTest.java b/src/test/java/redis/clients/jedis/tests/commands/HyperLogLogCommandsTest.java deleted file mode 100644 index e14c59b..0000000 --- a/src/test/java/redis/clients/jedis/tests/commands/HyperLogLogCommandsTest.java +++ /dev/null @@ -1,46 +0,0 @@ -package redis.clients.jedis.tests.commands; - -import org.junit.Test; - -public class HyperLogLogCommandsTest extends JedisCommandTestBase { - - - @Test - public void pfadd() { - long status = jedis.pfadd("foo", "a"); - assertEquals(1, status); - - status = jedis.pfadd("foo", "a"); - assertEquals(0, status); - } - - @Test - public void pfcount() { - long status = jedis.pfadd("hll", "foo", "bar", "zap"); - assertEquals(1, status); - - status = jedis.pfadd("hll", "zap", "zap", "zap"); - assertEquals(0, status); - - status = jedis.pfadd("hll", "foo", "bar"); - assertEquals(0, status); - - status = jedis.pfcount("hll"); - assertEquals(3, status); - } - - @Test - public void pfmerge() { - long status = jedis.pfadd("hll1", "foo", "bar", "zap", "a"); - assertEquals(1, status); - - status = jedis.pfadd("hll2", "a", "b", "c", "foo"); - assertEquals(1, status); - - String mergeStatus = jedis.pfmerge("hll3", "hll1", "hll2"); - assertEquals("OK", mergeStatus); - - status = jedis.pfcount("hll3"); - assertEquals(6, status); - } -} \ No newline at end of file