From 607d31d96b70b93a95dd1b4611a1b5137c0b76d6 Mon Sep 17 00:00:00 2001 From: Jonathan Leibiusky Date: Sun, 15 May 2011 22:17:21 -0300 Subject: [PATCH] On reconnection, select the correct db index --- src/main/java/redis/clients/jedis/BinaryClient.java | 6 +++++- src/main/java/redis/clients/jedis/Connection.java | 4 ++++ src/test/java/redis/clients/jedis/tests/JedisTest.java | 10 ++++++++++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/main/java/redis/clients/jedis/BinaryClient.java b/src/main/java/redis/clients/jedis/BinaryClient.java index b12d9ec..050964a 100644 --- a/src/main/java/redis/clients/jedis/BinaryClient.java +++ b/src/main/java/redis/clients/jedis/BinaryClient.java @@ -53,7 +53,11 @@ public class BinaryClient extends Connection { if (!isConnected()) { super.connect(); if (password != null) { - sendCommand(AUTH, password); + auth(password); + getStatusCodeReply(); + } + if (db > 0) { + select(Long.valueOf(db).intValue()); getStatusCodeReply(); } } diff --git a/src/main/java/redis/clients/jedis/Connection.java b/src/main/java/redis/clients/jedis/Connection.java index 9493fb9..be5e664 100644 --- a/src/main/java/redis/clients/jedis/Connection.java +++ b/src/main/java/redis/clients/jedis/Connection.java @@ -24,6 +24,10 @@ public class Connection { private int pipelinedCommands = 0; private int timeout = Protocol.DEFAULT_TIMEOUT; + public Socket getSocket() { + return socket; + } + public int getTimeout() { return timeout; } diff --git a/src/test/java/redis/clients/jedis/tests/JedisTest.java b/src/test/java/redis/clients/jedis/tests/JedisTest.java index a34ef3d..4bd7b59 100644 --- a/src/test/java/redis/clients/jedis/tests/JedisTest.java +++ b/src/test/java/redis/clients/jedis/tests/JedisTest.java @@ -1,5 +1,6 @@ package redis.clients.jedis.tests; +import java.io.IOException; import java.util.HashMap; import java.util.Map; @@ -59,4 +60,13 @@ public class JedisTest extends JedisCommandTestBase { public void failWhenSendingNullValues() { jedis.set("foo", null); } + + @Test + public void shouldReconnectToSameDB() throws IOException { + jedis.select(1); + jedis.set("foo", "bar"); + jedis.getClient().getSocket().shutdownInput(); + jedis.getClient().getSocket().shutdownOutput(); + assertEquals("bar", jedis.get("foo")); + } } \ No newline at end of file