From c6507e61878479229860d987a1f701e593afb9c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?KARASZI=20Istv=C3=A1n?= Date: Fri, 10 Sep 2010 19:40:44 +0800 Subject: [PATCH] connect in sendCommand() and don't check with isConnected() two times --- src/main/java/redis/clients/jedis/Connection.java | 10 +++++++--- src/main/java/redis/clients/jedis/JedisException.java | 4 ++++ src/test/java/redis/clients/jedis/tests/JedisTest.java | 4 ++-- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/main/java/redis/clients/jedis/Connection.java b/src/main/java/redis/clients/jedis/Connection.java index 1316b35..a341a69 100644 --- a/src/main/java/redis/clients/jedis/Connection.java +++ b/src/main/java/redis/clients/jedis/Connection.java @@ -50,9 +50,13 @@ public class Connection { } protected Connection sendCommand(String name, String... args) { - if (!isConnected()) { - throw new JedisException("Please connect Jedis before using it."); - } + try { + connect(); + } catch (UnknownHostException e) { + throw new JedisException("Could not connect to redis-server", e); + } catch (IOException e) { + throw new JedisException("Could not connect to redis-server", e); + } protocol.sendCommand(outputStream, name, args); pipelinedCommands++; return this; diff --git a/src/main/java/redis/clients/jedis/JedisException.java b/src/main/java/redis/clients/jedis/JedisException.java index cfb7394..472ee7a 100644 --- a/src/main/java/redis/clients/jedis/JedisException.java +++ b/src/main/java/redis/clients/jedis/JedisException.java @@ -15,4 +15,8 @@ public class JedisException extends RuntimeException { public JedisException(IOException e) { super(e); } + + public JedisException(String message, Throwable cause) { + super(message, cause); + } } diff --git a/src/test/java/redis/clients/jedis/tests/JedisTest.java b/src/test/java/redis/clients/jedis/tests/JedisTest.java index 8b8bf03..4f28cf7 100644 --- a/src/test/java/redis/clients/jedis/tests/JedisTest.java +++ b/src/test/java/redis/clients/jedis/tests/JedisTest.java @@ -11,7 +11,7 @@ import redis.clients.jedis.Protocol; import redis.clients.jedis.tests.commands.JedisCommandTestBase; public class JedisTest extends JedisCommandTestBase { - @Test(expected = JedisException.class) + @Test public void useWithoutConnecting() { Jedis jedis = new Jedis("localhost"); jedis.dbSize(); @@ -31,4 +31,4 @@ public class JedisTest extends JedisCommandTestBase { assertEquals(hash, jedis.hgetAll("foo")); } -} \ No newline at end of file +}