From 22b2229ba02b85cec563f3bcddffbe0cdcf5b135 Mon Sep 17 00:00:00 2001 From: Jonathan Leibiusky Date: Wed, 11 May 2011 14:06:07 -0300 Subject: [PATCH] handle quit command response as it was leaving the socket in an unconsistent state --- src/main/java/redis/clients/jedis/BinaryJedis.java | 3 ++- src/main/java/redis/clients/jedis/Jedis.java | 3 ++- .../commands/ConnectionHandlingCommandsTest.java | 14 +++++++++++++- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/main/java/redis/clients/jedis/BinaryJedis.java b/src/main/java/redis/clients/jedis/BinaryJedis.java index 4e96edc..74fcd09 100644 --- a/src/main/java/redis/clients/jedis/BinaryJedis.java +++ b/src/main/java/redis/clients/jedis/BinaryJedis.java @@ -77,9 +77,10 @@ public class BinaryJedis implements BinaryJedisCommands { /** * Ask the server to silently close the connection. */ - public void quit() { + public String quit() { checkIsInMulti(); client.quit(); + return client.getStatusCodeReply(); } /** diff --git a/src/main/java/redis/clients/jedis/Jedis.java b/src/main/java/redis/clients/jedis/Jedis.java index 3da5473..ad46e4a 100644 --- a/src/main/java/redis/clients/jedis/Jedis.java +++ b/src/main/java/redis/clients/jedis/Jedis.java @@ -69,9 +69,10 @@ public class Jedis extends BinaryJedis implements JedisCommands { * Ask the server to silently close the connection. */ - public void quit() { + public String quit() { checkIsInMulti(); client.quit(); + return client.getStatusCodeReply(); } /** diff --git a/src/test/java/redis/clients/jedis/tests/commands/ConnectionHandlingCommandsTest.java b/src/test/java/redis/clients/jedis/tests/commands/ConnectionHandlingCommandsTest.java index 13ad513..6b523fd 100644 --- a/src/test/java/redis/clients/jedis/tests/commands/ConnectionHandlingCommandsTest.java +++ b/src/test/java/redis/clients/jedis/tests/commands/ConnectionHandlingCommandsTest.java @@ -2,9 +2,21 @@ package redis.clients.jedis.tests.commands; import org.junit.Test; +import redis.clients.jedis.BinaryJedis; +import redis.clients.jedis.tests.HostAndPortUtil; +import redis.clients.jedis.tests.HostAndPortUtil.HostAndPort; + public class ConnectionHandlingCommandsTest extends JedisCommandTestBase { + protected static HostAndPort hnp = HostAndPortUtil.getRedisServers().get(0); + @Test public void quit() { - jedis.quit(); + assertEquals("OK", jedis.quit()); + } + + @Test + public void binary_quit() { + BinaryJedis bj = new BinaryJedis(hnp.host); + assertEquals("OK", bj.quit()); } } \ No newline at end of file