From 2a4a43f4cdcf72e2dcbce5282999bd27e22adf83 Mon Sep 17 00:00:00 2001 From: Jonathan Leibiusky Date: Sun, 30 Jan 2011 17:46:17 -0300 Subject: [PATCH] add JedisDataException and JedisConnectionException --- .../java/redis/clients/jedis/BinaryJedis.java | 1 + .../clients/jedis/BinaryJedisPubSub.java | 2 + .../java/redis/clients/jedis/Connection.java | 35 +++---- src/main/java/redis/clients/jedis/Jedis.java | 17 +--- .../redis/clients/jedis/JedisException.java | 22 ----- .../java/redis/clients/jedis/JedisPubSub.java | 1 + .../java/redis/clients/jedis/Protocol.java | 12 ++- .../redis/clients/jedis/ShardedJedis.java | 4 +- .../redis/clients/jedis/TransactionBlock.java | 2 + .../exceptions/JedisConnectionException.java | 17 ++++ .../jedis/exceptions/JedisDataException.java | 17 ++++ .../jedis/exceptions/JedisException.java | 18 ++++ src/main/java/redis/clients/util/Pool.java | 7 +- .../redis/clients/util/RedisInputStream.java | 6 +- .../java/redis/clients/util/SafeEncoder.java | 2 +- .../clients/jedis/tests/ConnectionTest.java | 26 +++-- .../tests/FragmentedByteArrayInputStream.java | 38 ++++---- .../clients/jedis/tests/HostAndPortUtil.java | 97 ++++++++++--------- .../clients/jedis/tests/JedisPoolTest.java | 12 +-- .../redis/clients/jedis/tests/JedisTest.java | 4 +- .../clients/jedis/tests/PipeliningTest.java | 7 +- .../jedis/tests/ShardedJedisPoolTest.java | 10 +- .../clients/jedis/tests/ShardedJedisTest.java | 11 +-- .../commands/AllKindOfValuesCommandsTest.java | 10 +- .../commands/BinaryValuesCommandsTest.java | 10 +- .../tests/commands/ControlCommandsTest.java | 89 +++++++++-------- .../tests/commands/JedisCommandTestBase.java | 6 +- .../tests/commands/ListCommandsTest.java | 20 +--- .../PublishSubscribeCommandsTest.java | 7 +- .../commands/StringValuesCommandsTest.java | 12 +-- .../commands/TransactionCommandsTest.java | 10 +- 31 files changed, 269 insertions(+), 263 deletions(-) delete mode 100644 src/main/java/redis/clients/jedis/JedisException.java create mode 100644 src/main/java/redis/clients/jedis/exceptions/JedisConnectionException.java create mode 100644 src/main/java/redis/clients/jedis/exceptions/JedisDataException.java create mode 100644 src/main/java/redis/clients/jedis/exceptions/JedisException.java diff --git a/src/main/java/redis/clients/jedis/BinaryJedis.java b/src/main/java/redis/clients/jedis/BinaryJedis.java index e245537..cf24500 100644 --- a/src/main/java/redis/clients/jedis/BinaryJedis.java +++ b/src/main/java/redis/clients/jedis/BinaryJedis.java @@ -11,6 +11,7 @@ import java.util.Map; import java.util.Set; import redis.clients.jedis.BinaryClient.LIST_POSITION; +import redis.clients.jedis.exceptions.JedisException; import redis.clients.util.JedisByteHashMap; import redis.clients.util.SafeEncoder; diff --git a/src/main/java/redis/clients/jedis/BinaryJedisPubSub.java b/src/main/java/redis/clients/jedis/BinaryJedisPubSub.java index fb3fb8a..81e79d6 100644 --- a/src/main/java/redis/clients/jedis/BinaryJedisPubSub.java +++ b/src/main/java/redis/clients/jedis/BinaryJedisPubSub.java @@ -10,6 +10,8 @@ import static redis.clients.jedis.Protocol.Keyword.UNSUBSCRIBE; import java.util.Arrays; import java.util.List; +import redis.clients.jedis.exceptions.JedisException; + public abstract class BinaryJedisPubSub { private int subscribedChannels = 0; private Client client; diff --git a/src/main/java/redis/clients/jedis/Connection.java b/src/main/java/redis/clients/jedis/Connection.java index 5277f37..c310cd6 100644 --- a/src/main/java/redis/clients/jedis/Connection.java +++ b/src/main/java/redis/clients/jedis/Connection.java @@ -3,11 +3,12 @@ package redis.clients.jedis; import java.io.IOException; import java.net.Socket; import java.net.SocketException; -import java.net.UnknownHostException; import java.util.ArrayList; import java.util.List; import redis.clients.jedis.Protocol.Command; +import redis.clients.jedis.exceptions.JedisConnectionException; +import redis.clients.jedis.exceptions.JedisException; import redis.clients.util.RedisInputStream; import redis.clients.util.RedisOutputStream; import redis.clients.util.SafeEncoder; @@ -60,26 +61,14 @@ public class Connection { } protected Connection sendCommand(final Command cmd, final byte[]... args) { - 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); - } + connect(); protocol.sendCommand(outputStream, cmd, args); pipelinedCommands++; return this; } protected Connection sendCommand(final Command cmd) { - 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); - } + connect(); protocol.sendCommand(outputStream, cmd, new byte[0][]); pipelinedCommands++; return this; @@ -110,12 +99,16 @@ public class Connection { public Connection() { } - public void connect() throws UnknownHostException, IOException { + public void connect() { if (!isConnected()) { - socket = new Socket(host, port); - socket.setSoTimeout(timeout); - outputStream = new RedisOutputStream(socket.getOutputStream()); - inputStream = new RedisInputStream(socket.getInputStream()); + try { + socket = new Socket(host, port); + socket.setSoTimeout(timeout); + outputStream = new RedisOutputStream(socket.getOutputStream()); + inputStream = new RedisInputStream(socket.getInputStream()); + } catch (IOException ex) { + throw new JedisConnectionException(ex); + } } } @@ -128,7 +121,7 @@ public class Connection { socket.close(); } } catch (IOException ex) { - throw new JedisException(ex); + throw new JedisConnectionException(ex); } } } diff --git a/src/main/java/redis/clients/jedis/Jedis.java b/src/main/java/redis/clients/jedis/Jedis.java index c2e4b42..d57b443 100644 --- a/src/main/java/redis/clients/jedis/Jedis.java +++ b/src/main/java/redis/clients/jedis/Jedis.java @@ -1,7 +1,5 @@ package redis.clients.jedis; -import java.io.IOException; -import java.net.UnknownHostException; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; @@ -12,6 +10,7 @@ import java.util.Map; import java.util.Set; import redis.clients.jedis.BinaryClient.LIST_POSITION; +import redis.clients.jedis.exceptions.JedisDataException; public class Jedis extends BinaryJedis implements JedisCommands { public Jedis(final String host) { @@ -1647,19 +1646,13 @@ public class Jedis extends BinaryJedis implements JedisCommands { private void runChecks() { if (client.isInMulti()) { - throw new JedisException( + throw new JedisDataException( "Cannot use Jedis when in Multi. Please use JedisTransaction instead."); } - try { - this.connect(); - } catch (UnknownHostException e) { - throw new JedisException(e); - } catch (IOException e) { - throw new JedisException(e); - } + this.connect(); } - public void connect() throws UnknownHostException, IOException { + public void connect() { if (!client.isConnected()) { client.connect(); if (this.password != null) { @@ -1668,7 +1661,7 @@ public class Jedis extends BinaryJedis implements JedisCommands { } } - public void disconnect() throws IOException { + public void disconnect() { client.disconnect(); } diff --git a/src/main/java/redis/clients/jedis/JedisException.java b/src/main/java/redis/clients/jedis/JedisException.java deleted file mode 100644 index 472ee7a..0000000 --- a/src/main/java/redis/clients/jedis/JedisException.java +++ /dev/null @@ -1,22 +0,0 @@ -package redis.clients.jedis; - -import java.io.IOException; - -public class JedisException extends RuntimeException { - /** - * - */ - private static final long serialVersionUID = -2946266495682282677L; - - public JedisException(String message) { - super(message); - } - - public JedisException(IOException e) { - super(e); - } - - public JedisException(String message, Throwable cause) { - super(message, cause); - } -} diff --git a/src/main/java/redis/clients/jedis/JedisPubSub.java b/src/main/java/redis/clients/jedis/JedisPubSub.java index 6fdbc3d..4bb18dc 100644 --- a/src/main/java/redis/clients/jedis/JedisPubSub.java +++ b/src/main/java/redis/clients/jedis/JedisPubSub.java @@ -10,6 +10,7 @@ import static redis.clients.jedis.Protocol.Keyword.UNSUBSCRIBE; import java.util.Arrays; import java.util.List; +import redis.clients.jedis.exceptions.JedisException; import redis.clients.util.SafeEncoder; public abstract class JedisPubSub { diff --git a/src/main/java/redis/clients/jedis/Protocol.java b/src/main/java/redis/clients/jedis/Protocol.java index 2a75a8a..301e30a 100644 --- a/src/main/java/redis/clients/jedis/Protocol.java +++ b/src/main/java/redis/clients/jedis/Protocol.java @@ -4,6 +4,8 @@ import java.io.IOException; import java.util.ArrayList; import java.util.List; +import redis.clients.jedis.exceptions.JedisConnectionException; +import redis.clients.jedis.exceptions.JedisDataException; import redis.clients.util.RedisInputStream; import redis.clients.util.RedisOutputStream; import redis.clients.util.SafeEncoder; @@ -44,13 +46,13 @@ public final class Protocol { } os.flush(); } catch (IOException e) { - throw new JedisException(e); + throw new JedisConnectionException(e); } } private void processError(final RedisInputStream is) { String message = is.readLine(); - throw new JedisException(message); + throw new JedisDataException(message); } private Object process(final RedisInputStream is) { @@ -67,10 +69,10 @@ public final class Protocol { } else if (b == PLUS_BYTE) { return processStatusCodeReply(is); } else { - throw new JedisException("Unknown reply: " + (char) b); + throw new JedisConnectionException("Unknown reply: " + (char) b); } } catch (IOException e) { - throw new JedisException(e); + throw new JedisConnectionException(e); } return null; } @@ -94,7 +96,7 @@ public final class Protocol { is.readByte(); is.readByte(); } catch (IOException e) { - throw new JedisException(e); + throw new JedisConnectionException(e); } return read; diff --git a/src/main/java/redis/clients/jedis/ShardedJedis.java b/src/main/java/redis/clients/jedis/ShardedJedis.java index 213f3ed..a9a67b9 100644 --- a/src/main/java/redis/clients/jedis/ShardedJedis.java +++ b/src/main/java/redis/clients/jedis/ShardedJedis.java @@ -1,6 +1,5 @@ package redis.clients.jedis; -import java.io.IOException; import java.util.Collection; import java.util.List; import java.util.Map; @@ -28,8 +27,7 @@ public class ShardedJedis extends BinaryShardedJedis implements JedisCommands { super(shards, algo, keyTagPattern); } - @Override - public void disconnect() throws IOException { + public void disconnect() { for (Jedis jedis : getAllShards()) { jedis.quit(); jedis.disconnect(); diff --git a/src/main/java/redis/clients/jedis/TransactionBlock.java b/src/main/java/redis/clients/jedis/TransactionBlock.java index 4e59726..87df232 100644 --- a/src/main/java/redis/clients/jedis/TransactionBlock.java +++ b/src/main/java/redis/clients/jedis/TransactionBlock.java @@ -1,5 +1,7 @@ package redis.clients.jedis; +import redis.clients.jedis.exceptions.JedisException; + public abstract class TransactionBlock extends Transaction { public TransactionBlock(Client client) { super(client); diff --git a/src/main/java/redis/clients/jedis/exceptions/JedisConnectionException.java b/src/main/java/redis/clients/jedis/exceptions/JedisConnectionException.java new file mode 100644 index 0000000..6e25718 --- /dev/null +++ b/src/main/java/redis/clients/jedis/exceptions/JedisConnectionException.java @@ -0,0 +1,17 @@ +package redis.clients.jedis.exceptions; + +public class JedisConnectionException extends JedisException { + private static final long serialVersionUID = 3878126572474819403L; + + public JedisConnectionException(String message) { + super(message); + } + + public JedisConnectionException(Throwable cause) { + super(cause); + } + + public JedisConnectionException(String message, Throwable cause) { + super(message, cause); + } +} diff --git a/src/main/java/redis/clients/jedis/exceptions/JedisDataException.java b/src/main/java/redis/clients/jedis/exceptions/JedisDataException.java new file mode 100644 index 0000000..1a7de9b --- /dev/null +++ b/src/main/java/redis/clients/jedis/exceptions/JedisDataException.java @@ -0,0 +1,17 @@ +package redis.clients.jedis.exceptions; + +public class JedisDataException extends JedisException { + private static final long serialVersionUID = 3878126572474819403L; + + public JedisDataException(String message) { + super(message); + } + + public JedisDataException(Throwable cause) { + super(cause); + } + + public JedisDataException(String message, Throwable cause) { + super(message, cause); + } +} diff --git a/src/main/java/redis/clients/jedis/exceptions/JedisException.java b/src/main/java/redis/clients/jedis/exceptions/JedisException.java new file mode 100644 index 0000000..f983bf6 --- /dev/null +++ b/src/main/java/redis/clients/jedis/exceptions/JedisException.java @@ -0,0 +1,18 @@ +package redis.clients.jedis.exceptions; + + +public class JedisException extends RuntimeException { + private static final long serialVersionUID = -2946266495682282677L; + + public JedisException(String message) { + super(message); + } + + public JedisException(Throwable e) { + super(e); + } + + public JedisException(String message, Throwable cause) { + super(message, cause); + } +} diff --git a/src/main/java/redis/clients/util/Pool.java b/src/main/java/redis/clients/util/Pool.java index 72bec5b..3f74370 100644 --- a/src/main/java/redis/clients/util/Pool.java +++ b/src/main/java/redis/clients/util/Pool.java @@ -3,7 +3,8 @@ package redis.clients.util; import org.apache.commons.pool.PoolableObjectFactory; import org.apache.commons.pool.impl.GenericObjectPool; -import redis.clients.jedis.JedisException; +import redis.clients.jedis.exceptions.JedisConnectionException; +import redis.clients.jedis.exceptions.JedisException; public abstract class Pool { private final GenericObjectPool internalPool; @@ -18,8 +19,8 @@ public abstract class Pool { try { return (T) internalPool.borrowObject(); } catch (Exception e) { - throw new JedisException("Could not get a resource from the pool", - e); + throw new JedisConnectionException( + "Could not get a resource from the pool", e); } } diff --git a/src/main/java/redis/clients/util/RedisInputStream.java b/src/main/java/redis/clients/util/RedisInputStream.java index 78f5aff..f30ddf5 100644 --- a/src/main/java/redis/clients/util/RedisInputStream.java +++ b/src/main/java/redis/clients/util/RedisInputStream.java @@ -20,7 +20,8 @@ import java.io.FilterInputStream; import java.io.IOException; import java.io.InputStream; -import redis.clients.jedis.JedisException; +import redis.clients.jedis.exceptions.JedisConnectionException; +import redis.clients.jedis.exceptions.JedisException; public class RedisInputStream extends FilterInputStream { @@ -87,13 +88,12 @@ public class RedisInputStream extends FilterInputStream { } String reply = sb.toString(); if (reply.length() == 0) { - throw new JedisException( + throw new JedisConnectionException( "It seems like server has closed the connection."); } return reply; } - @Override public int read(byte[] b, int off, int len) throws IOException { if (count == limit) { fill(); diff --git a/src/main/java/redis/clients/util/SafeEncoder.java b/src/main/java/redis/clients/util/SafeEncoder.java index 3b95395..c657756 100644 --- a/src/main/java/redis/clients/util/SafeEncoder.java +++ b/src/main/java/redis/clients/util/SafeEncoder.java @@ -2,8 +2,8 @@ package redis.clients.util; import java.io.UnsupportedEncodingException; -import redis.clients.jedis.JedisException; import redis.clients.jedis.Protocol; +import redis.clients.jedis.exceptions.JedisException; /** * The only reason to have this is to be able to compatible with java 1.5 :( diff --git a/src/test/java/redis/clients/jedis/tests/ConnectionTest.java b/src/test/java/redis/clients/jedis/tests/ConnectionTest.java index 94d0073..84d76b5 100644 --- a/src/test/java/redis/clients/jedis/tests/ConnectionTest.java +++ b/src/test/java/redis/clients/jedis/tests/ConnectionTest.java @@ -1,38 +1,36 @@ package redis.clients.jedis.tests; -import java.io.IOException; -import java.net.UnknownHostException; - import org.junit.After; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import redis.clients.jedis.Connection; +import redis.clients.jedis.exceptions.JedisConnectionException; public class ConnectionTest extends Assert { private Connection client; @Before public void setUp() throws Exception { - client = new Connection(); + client = new Connection(); } @After public void tearDown() throws Exception { - client.disconnect(); + client.disconnect(); } - @Test(expected = UnknownHostException.class) - public void checkUnkownHost() throws UnknownHostException, IOException { - client.setHost("someunknownhost"); - client.connect(); + @Test(expected = JedisConnectionException.class) + public void checkUnkownHost() { + client.setHost("someunknownhost"); + client.connect(); } - @Test(expected = IOException.class) - public void checkWrongPort() throws UnknownHostException, IOException { - client.setHost("localhost"); - client.setPort(55665); - client.connect(); + @Test(expected = JedisConnectionException.class) + public void checkWrongPort() { + client.setHost("localhost"); + client.setPort(55665); + client.connect(); } } \ No newline at end of file diff --git a/src/test/java/redis/clients/jedis/tests/FragmentedByteArrayInputStream.java b/src/test/java/redis/clients/jedis/tests/FragmentedByteArrayInputStream.java index c57525d..37d7d82 100644 --- a/src/test/java/redis/clients/jedis/tests/FragmentedByteArrayInputStream.java +++ b/src/test/java/redis/clients/jedis/tests/FragmentedByteArrayInputStream.java @@ -6,25 +6,25 @@ import java.io.ByteArrayInputStream; * Test class the fragment a byte array for testing purpose. */ public class FragmentedByteArrayInputStream extends ByteArrayInputStream { - private int readMethodCallCount = 0; - public FragmentedByteArrayInputStream(final byte[] buf) { - super(buf); - } + private int readMethodCallCount = 0; - @Override - public synchronized int read(final byte[] b, final int off, final int len) { - readMethodCallCount++; - if (len <= 10) { - // if the len <= 10, return as usual .. - return super.read(b, off, len); - } else { - // else return the first half .. - return super.read(b, off, len / 2); - } - } - - public int getReadMethodCallCount() { - return readMethodCallCount; - } + public FragmentedByteArrayInputStream(final byte[] buf) { + super(buf); + } + + public synchronized int read(final byte[] b, final int off, final int len) { + readMethodCallCount++; + if (len <= 10) { + // if the len <= 10, return as usual .. + return super.read(b, off, len); + } else { + // else return the first half .. + return super.read(b, off, len / 2); + } + } + + public int getReadMethodCallCount() { + return readMethodCallCount; + } } diff --git a/src/test/java/redis/clients/jedis/tests/HostAndPortUtil.java b/src/test/java/redis/clients/jedis/tests/HostAndPortUtil.java index a0098dd..215cfc4 100644 --- a/src/test/java/redis/clients/jedis/tests/HostAndPortUtil.java +++ b/src/test/java/redis/clients/jedis/tests/HostAndPortUtil.java @@ -6,53 +6,56 @@ import java.util.List; import redis.clients.jedis.Protocol; public class HostAndPortUtil { - private static List hostAndPortList = new ArrayList(2); - - static { - final HostAndPort defaulthnp1 = new HostAndPort(); - defaulthnp1.host = "localhost"; - defaulthnp1.port = Protocol.DEFAULT_PORT; - hostAndPortList.add(defaulthnp1); - - final HostAndPort defaulthnp2 = new HostAndPort(); - defaulthnp2.host = "localhost"; - defaulthnp2.port = Protocol.DEFAULT_PORT + 1; - hostAndPortList.add(defaulthnp2); + private static List hostAndPortList = new ArrayList( + 2); - - final String envHosts = System.getProperty("redis-hosts"); - if (null != envHosts && 0 < envHosts.length()) { - final String[] hostDefs = envHosts.split(","); - if (null != hostDefs && 2 <= hostDefs.length) { - hostAndPortList = new ArrayList(hostDefs.length); - for(String hostDef : hostDefs) { - final String[] hostAndPort = hostDef.split(":"); - if (null != hostAndPort && 2 == hostAndPort.length) { - final HostAndPort hnp = new HostAndPort(); - hnp.host = hostAndPort[0]; - try { - hnp.port = Integer.parseInt(hostAndPort[1]); - } catch(final NumberFormatException nfe){ - hnp.port = Protocol.DEFAULT_PORT; - } - hostAndPortList.add(hnp); - } - } - } - } - final StringBuilder strb = new StringBuilder("Redis hosts to be used : "); - for(HostAndPort hnp : hostAndPortList){ - strb.append('[').append(hnp.host).append(':').append(hnp.port).append(']').append(' '); - } - System.out.println(strb); - } + static { + final HostAndPort defaulthnp1 = new HostAndPort(); + defaulthnp1.host = "localhost"; + defaulthnp1.port = Protocol.DEFAULT_PORT; + hostAndPortList.add(defaulthnp1); - public static List getRedisServers() { - return hostAndPortList; - } - - public static class HostAndPort { - public String host; - public int port; - } + final HostAndPort defaulthnp2 = new HostAndPort(); + defaulthnp2.host = "localhost"; + defaulthnp2.port = Protocol.DEFAULT_PORT + 1; + hostAndPortList.add(defaulthnp2); + + final String envHosts = System.getProperty("redis-hosts"); + if (null != envHosts && 0 < envHosts.length()) { + final String[] hostDefs = envHosts.split(","); + if (null != hostDefs && 2 <= hostDefs.length) { + hostAndPortList = new ArrayList( + hostDefs.length); + for (String hostDef : hostDefs) { + final String[] hostAndPort = hostDef.split(":"); + if (null != hostAndPort && 2 == hostAndPort.length) { + final HostAndPort hnp = new HostAndPort(); + hnp.host = hostAndPort[0]; + try { + hnp.port = Integer.parseInt(hostAndPort[1]); + } catch (final NumberFormatException nfe) { + hnp.port = Protocol.DEFAULT_PORT; + } + hostAndPortList.add(hnp); + } + } + } + } + final StringBuilder strb = new StringBuilder( + "Redis hosts to be used : "); + for (HostAndPort hnp : hostAndPortList) { + strb.append('[').append(hnp.host).append(':').append(hnp.port) + .append(']').append(' '); + } + System.out.println(strb); + } + + public static List getRedisServers() { + return hostAndPortList; + } + + public static class HostAndPort { + public String host; + public int port; + } } diff --git a/src/test/java/redis/clients/jedis/tests/JedisPoolTest.java b/src/test/java/redis/clients/jedis/tests/JedisPoolTest.java index 6b4ddde..a303cd2 100644 --- a/src/test/java/redis/clients/jedis/tests/JedisPoolTest.java +++ b/src/test/java/redis/clients/jedis/tests/JedisPoolTest.java @@ -6,16 +6,16 @@ import org.junit.Assert; import org.junit.Test; import redis.clients.jedis.Jedis; -import redis.clients.jedis.JedisException; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig; +import redis.clients.jedis.exceptions.JedisConnectionException; import redis.clients.jedis.tests.HostAndPortUtil.HostAndPort; public class JedisPoolTest extends Assert { private static HostAndPort hnp = HostAndPortUtil.getRedisServers().get(0); @Test - public void checkConnections() throws Exception { + public void checkConnections() { JedisPool pool = new JedisPool(new JedisPoolConfig(), hnp.host, hnp.port, 2000); Jedis jedis = pool.getResource(); @@ -27,7 +27,7 @@ public class JedisPoolTest extends Assert { } @Test - public void checkConnectionWithDefaultPort() throws Exception { + public void checkConnectionWithDefaultPort() { JedisPool pool = new JedisPool(new JedisPoolConfig(), hnp.host, hnp.port); Jedis jedis = pool.getResource(); @@ -39,7 +39,7 @@ public class JedisPoolTest extends Assert { } @Test - public void checkJedisIsReusedWhenReturned() throws Exception { + public void checkJedisIsReusedWhenReturned() { JedisPool pool = new JedisPool(new JedisPoolConfig(), hnp.host, hnp.port); Jedis jedis = pool.getResource(); @@ -55,7 +55,7 @@ public class JedisPoolTest extends Assert { } @Test - public void checkPoolRepairedWhenJedisIsBroken() throws Exception { + public void checkPoolRepairedWhenJedisIsBroken() { JedisPool pool = new JedisPool(new JedisPoolConfig(), hnp.host, hnp.port); Jedis jedis = pool.getResource(); @@ -70,7 +70,7 @@ public class JedisPoolTest extends Assert { pool.destroy(); } - @Test(expected = JedisException.class) + @Test(expected = JedisConnectionException.class) public void checkPoolOverflow() { Config config = new Config(); config.maxActive = 1; diff --git a/src/test/java/redis/clients/jedis/tests/JedisTest.java b/src/test/java/redis/clients/jedis/tests/JedisTest.java index 69b3946..d1272d2 100644 --- a/src/test/java/redis/clients/jedis/tests/JedisTest.java +++ b/src/test/java/redis/clients/jedis/tests/JedisTest.java @@ -6,9 +6,9 @@ import java.util.Map; import org.junit.Test; import redis.clients.jedis.Jedis; -import redis.clients.jedis.JedisException; import redis.clients.jedis.JedisShardInfo; import redis.clients.jedis.Protocol; +import redis.clients.jedis.exceptions.JedisConnectionException; import redis.clients.jedis.tests.commands.JedisCommandTestBase; import redis.clients.util.SafeEncoder; @@ -43,7 +43,7 @@ public class JedisTest extends JedisCommandTestBase { jedis.get("foo"); } - @Test(expected = JedisException.class) + @Test(expected = JedisConnectionException.class) public void timeoutConnection() throws Exception { jedis = new Jedis("localhost", 6379, 15000); jedis.auth("foobared"); diff --git a/src/test/java/redis/clients/jedis/tests/PipeliningTest.java b/src/test/java/redis/clients/jedis/tests/PipeliningTest.java index 1a76046..0928553 100644 --- a/src/test/java/redis/clients/jedis/tests/PipeliningTest.java +++ b/src/test/java/redis/clients/jedis/tests/PipeliningTest.java @@ -1,7 +1,6 @@ package redis.clients.jedis.tests; -import java.io.IOException; -import java.net.UnknownHostException; +import java.io.UnsupportedEncodingException; import java.util.List; import org.junit.Assert; @@ -9,8 +8,8 @@ import org.junit.Before; import org.junit.Test; import redis.clients.jedis.Jedis; -import redis.clients.jedis.PipelineBlock; import redis.clients.jedis.Pipeline; +import redis.clients.jedis.PipelineBlock; import redis.clients.jedis.Protocol; import redis.clients.jedis.tests.HostAndPortUtil.HostAndPort; @@ -28,7 +27,7 @@ public class PipeliningTest extends Assert { } @Test - public void pipeline() throws UnknownHostException, IOException { + public void pipeline() throws UnsupportedEncodingException { List results = jedis.pipelined(new PipelineBlock() { public void execute() { set("foo", "bar"); diff --git a/src/test/java/redis/clients/jedis/tests/ShardedJedisPoolTest.java b/src/test/java/redis/clients/jedis/tests/ShardedJedisPoolTest.java index b874a07..eeddef6 100644 --- a/src/test/java/redis/clients/jedis/tests/ShardedJedisPoolTest.java +++ b/src/test/java/redis/clients/jedis/tests/ShardedJedisPoolTest.java @@ -1,7 +1,5 @@ package redis.clients.jedis.tests; -import java.io.IOException; -import java.net.UnknownHostException; import java.util.ArrayList; import java.util.List; @@ -12,10 +10,10 @@ import org.junit.Before; import org.junit.Test; import redis.clients.jedis.Jedis; -import redis.clients.jedis.JedisException; import redis.clients.jedis.JedisShardInfo; import redis.clients.jedis.ShardedJedis; import redis.clients.jedis.ShardedJedisPool; +import redis.clients.jedis.exceptions.JedisConnectionException; import redis.clients.jedis.tests.HostAndPortUtil.HostAndPort; public class ShardedJedisPoolTest extends Assert { @@ -27,7 +25,7 @@ public class ShardedJedisPoolTest extends Assert { private List shards; @Before - public void startUp() throws UnknownHostException, IOException { + public void startUp() { shards = new ArrayList(); shards.add(new JedisShardInfo(redis1.host, redis1.port)); shards.add(new JedisShardInfo(redis2.host, redis2.port)); @@ -77,7 +75,7 @@ public class ShardedJedisPoolTest extends Assert { } @Test - public void checkPoolRepairedWhenJedisIsBroken() throws Exception { + public void checkPoolRepairedWhenJedisIsBroken() { ShardedJedisPool pool = new ShardedJedisPool(new Config(), shards); ShardedJedis jedis = pool.getResource(); jedis.disconnect(); @@ -89,7 +87,7 @@ public class ShardedJedisPoolTest extends Assert { pool.destroy(); } - @Test(expected = JedisException.class) + @Test(expected = JedisConnectionException.class) public void checkPoolOverflow() { Config config = new Config(); config.maxActive = 1; diff --git a/src/test/java/redis/clients/jedis/tests/ShardedJedisTest.java b/src/test/java/redis/clients/jedis/tests/ShardedJedisTest.java index 82a6f74..4972042 100644 --- a/src/test/java/redis/clients/jedis/tests/ShardedJedisTest.java +++ b/src/test/java/redis/clients/jedis/tests/ShardedJedisTest.java @@ -1,6 +1,5 @@ package redis.clients.jedis.tests; -import java.io.IOException; import java.util.ArrayList; import java.util.List; @@ -24,7 +23,7 @@ public class ShardedJedisTest extends Assert { .get(1); @Test - public void checkSharding() throws IOException { + public void checkSharding() { List shards = new ArrayList(); shards.add(new JedisShardInfo(redis1.host, redis1.port)); shards.add(new JedisShardInfo(redis2.host, redis2.port)); @@ -35,7 +34,7 @@ public class ShardedJedisTest extends Assert { } @Test - public void trySharding() throws IOException { + public void trySharding() { List shards = new ArrayList(); JedisShardInfo si = new JedisShardInfo(redis1.host, redis1.port); si.setPassword("foobared"); @@ -62,7 +61,7 @@ public class ShardedJedisTest extends Assert { } @Test - public void tryShardingWithMurmure() throws IOException { + public void tryShardingWithMurmure() { List shards = new ArrayList(); JedisShardInfo si = new JedisShardInfo(redis1.host, redis1.port); si.setPassword("foobared"); @@ -154,7 +153,7 @@ public class ShardedJedisTest extends Assert { } @Test - public void testMD5Sharding() throws Exception { + public void testMD5Sharding() { List shards = new ArrayList(3); shards.add(new JedisShardInfo("localhost", Protocol.DEFAULT_PORT)); shards.add(new JedisShardInfo("localhost", Protocol.DEFAULT_PORT + 1)); @@ -189,7 +188,7 @@ public class ShardedJedisTest extends Assert { } @Test - public void testMurmurSharding() throws Exception { + public void testMurmurSharding() { List shards = new ArrayList(3); shards.add(new JedisShardInfo("localhost", Protocol.DEFAULT_PORT)); shards.add(new JedisShardInfo("localhost", Protocol.DEFAULT_PORT + 1)); diff --git a/src/test/java/redis/clients/jedis/tests/commands/AllKindOfValuesCommandsTest.java b/src/test/java/redis/clients/jedis/tests/commands/AllKindOfValuesCommandsTest.java index 50cfb18..34f47f2 100644 --- a/src/test/java/redis/clients/jedis/tests/commands/AllKindOfValuesCommandsTest.java +++ b/src/test/java/redis/clients/jedis/tests/commands/AllKindOfValuesCommandsTest.java @@ -6,7 +6,7 @@ import java.util.Set; import org.junit.Test; -import redis.clients.jedis.JedisException; +import redis.clients.jedis.exceptions.JedisDataException; import redis.clients.util.SafeEncoder; public class AllKindOfValuesCommandsTest extends JedisCommandTestBase { @@ -205,16 +205,16 @@ public class AllKindOfValuesCommandsTest extends JedisCommandTestBase { try { jedis.set("foo", "bar"); jedis.rename("foo", "foo"); - fail("JedisException expected"); - } catch (final JedisException e) { + fail("JedisDataException expected"); + } catch (final JedisDataException e) { } // Binary try { jedis.set(bfoo, bbar); jedis.rename(bfoo, bfoo); - fail("JedisException expected"); - } catch (final JedisException e) { + fail("JedisDataException expected"); + } catch (final JedisDataException e) { } } diff --git a/src/test/java/redis/clients/jedis/tests/commands/BinaryValuesCommandsTest.java b/src/test/java/redis/clients/jedis/tests/commands/BinaryValuesCommandsTest.java index 28e4aa2..87a5778 100644 --- a/src/test/java/redis/clients/jedis/tests/commands/BinaryValuesCommandsTest.java +++ b/src/test/java/redis/clients/jedis/tests/commands/BinaryValuesCommandsTest.java @@ -7,8 +7,8 @@ import java.util.List; import org.junit.Before; import org.junit.Test; -import redis.clients.jedis.JedisException; import redis.clients.jedis.Protocol.Keyword; +import redis.clients.jedis.exceptions.JedisDataException; public class BinaryValuesCommandsTest extends JedisCommandTestBase { byte[] bfoo = { 0x01, 0x02, 0x03, 0x04 }; @@ -113,7 +113,7 @@ public class BinaryValuesCommandsTest extends JedisCommandTestBase { assertTrue(Arrays.equals(bfoo, jedis.get(bbar))); } - @Test(expected = JedisException.class) + @Test(expected = JedisDataException.class) public void incrWrongValue() { jedis.set(bfoo, binaryValue); jedis.incr(bfoo); @@ -127,7 +127,7 @@ public class BinaryValuesCommandsTest extends JedisCommandTestBase { assertEquals(2, value); } - @Test(expected = JedisException.class) + @Test(expected = JedisDataException.class) public void incrByWrongValue() { jedis.set(bfoo, binaryValue); jedis.incrBy(bfoo, 2); @@ -141,7 +141,7 @@ public class BinaryValuesCommandsTest extends JedisCommandTestBase { assertEquals(4, value); } - @Test(expected = JedisException.class) + @Test(expected = JedisDataException.class) public void decrWrongValue() { jedis.set(bfoo, binaryValue); jedis.decr(bfoo); @@ -155,7 +155,7 @@ public class BinaryValuesCommandsTest extends JedisCommandTestBase { assertEquals(-2, value); } - @Test(expected = JedisException.class) + @Test(expected = JedisDataException.class) public void decrByWrongValue() { jedis.set(bfoo, binaryValue); jedis.decrBy(bfoo, 2); diff --git a/src/test/java/redis/clients/jedis/tests/commands/ControlCommandsTest.java b/src/test/java/redis/clients/jedis/tests/commands/ControlCommandsTest.java index 6e5fded..423a146 100644 --- a/src/test/java/redis/clients/jedis/tests/commands/ControlCommandsTest.java +++ b/src/test/java/redis/clients/jedis/tests/commands/ControlCommandsTest.java @@ -5,93 +5,92 @@ import java.util.List; import org.junit.Test; import redis.clients.jedis.DebugParams; -import redis.clients.jedis.JedisException; import redis.clients.jedis.JedisMonitor; +import redis.clients.jedis.exceptions.JedisDataException; public class ControlCommandsTest extends JedisCommandTestBase { @Test public void save() { - String status = jedis.save(); - assertEquals("OK", status); + String status = jedis.save(); + assertEquals("OK", status); } @Test public void bgsave() { - try { - String status = jedis.bgsave(); - assertEquals("Background saving started", status); - } catch (JedisException e) { - assertTrue( - "ERR Background save already in progress" - .equalsIgnoreCase(e.getMessage())); - } + try { + String status = jedis.bgsave(); + assertEquals("Background saving started", status); + } catch (JedisDataException e) { + assertTrue("ERR Background save already in progress" + .equalsIgnoreCase(e.getMessage())); + } } @Test public void bgrewriteaof() { - String status = jedis.bgrewriteaof(); - assertEquals("Background append only file rewriting started", status); + String status = jedis.bgrewriteaof(); + assertEquals("Background append only file rewriting started", status); } @Test public void lastsave() throws InterruptedException { - long before = jedis.lastsave(); - String st = ""; - while (!st.equals("OK")) { - try { - Thread.sleep(1000); - st = jedis.save(); - } catch (JedisException e) { + long before = jedis.lastsave(); + String st = ""; + while (!st.equals("OK")) { + try { + Thread.sleep(1000); + st = jedis.save(); + } catch (JedisDataException e) { - } - } - long after = jedis.lastsave(); - assertTrue((after - before) > 0); + } + } + long after = jedis.lastsave(); + assertTrue((after - before) > 0); } @Test public void info() { - String info = jedis.info(); - assertNotNull(info); + String info = jedis.info(); + assertNotNull(info); } @Test public void monitor() { - jedis.monitor(new JedisMonitor() { - @Override - public void onCommand(String command) { - assertTrue(command.contains("OK")); - client.disconnect(); - } - }); + jedis.monitor(new JedisMonitor() { + @Override + public void onCommand(String command) { + assertTrue(command.contains("OK")); + client.disconnect(); + } + }); } @Test public void configGet() { - List info = jedis.configGet("m*"); - assertNotNull(info); + List info = jedis.configGet("m*"); + assertNotNull(info); } @Test public void configSet() { - List info = jedis.configGet("maxmemory"); - String memory = info.get(1); - String status = jedis.configSet("maxmemory", "200"); - assertEquals("OK", status); - jedis.configSet("maxmemory", memory); + List info = jedis.configGet("maxmemory"); + String memory = info.get(1); + String status = jedis.configSet("maxmemory", "200"); + assertEquals("OK", status); + jedis.configSet("maxmemory", memory); } @Test public void sync() { - jedis.sync(); + jedis.sync(); } @Test public void debug() { jedis.set("foo", "bar"); - String resp = jedis.debug(DebugParams.OBJECT("foo")); - assertNotNull(resp); - resp = jedis.debug(DebugParams.RELOAD()); - assertNotNull(resp); + String resp = jedis.debug(DebugParams.OBJECT("foo")); + assertNotNull(resp); + resp = jedis.debug(DebugParams.RELOAD()); + assertNotNull(resp); } } \ No newline at end of file diff --git a/src/test/java/redis/clients/jedis/tests/commands/JedisCommandTestBase.java b/src/test/java/redis/clients/jedis/tests/commands/JedisCommandTestBase.java index 7db7edb..738e4ab 100644 --- a/src/test/java/redis/clients/jedis/tests/commands/JedisCommandTestBase.java +++ b/src/test/java/redis/clients/jedis/tests/commands/JedisCommandTestBase.java @@ -1,7 +1,5 @@ package redis.clients.jedis.tests.commands; -import java.io.IOException; -import java.net.UnknownHostException; import java.util.Iterator; import java.util.List; import java.util.Set; @@ -33,11 +31,11 @@ public abstract class JedisCommandTestBase extends JedisTestBase { } @After - public void tearDown() throws Exception { + public void tearDown() { jedis.disconnect(); } - protected Jedis createJedis() throws UnknownHostException, IOException { + protected Jedis createJedis() { Jedis j = new Jedis(hnp.host, hnp.port); j.connect(); j.auth("foobared"); diff --git a/src/test/java/redis/clients/jedis/tests/commands/ListCommandsTest.java b/src/test/java/redis/clients/jedis/tests/commands/ListCommandsTest.java index 5d0462e..8b082c3 100644 --- a/src/test/java/redis/clients/jedis/tests/commands/ListCommandsTest.java +++ b/src/test/java/redis/clients/jedis/tests/commands/ListCommandsTest.java @@ -1,7 +1,5 @@ package redis.clients.jedis.tests.commands; -import java.io.IOException; -import java.net.UnknownHostException; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -10,7 +8,7 @@ import org.junit.Test; import redis.clients.jedis.Client; import redis.clients.jedis.Jedis; -import redis.clients.jedis.JedisException; +import redis.clients.jedis.exceptions.JedisDataException; public class ListCommandsTest extends JedisCommandTestBase { final byte[] bfoo = { 0x01, 0x02, 0x03, 0x04 }; @@ -76,16 +74,16 @@ public class ListCommandsTest extends JedisCommandTestBase { try { jedis.set("foo", "bar"); jedis.llen("foo"); - fail("JedisException expected"); - } catch (final JedisException e) { + fail("JedisDataException expected"); + } catch (final JedisDataException e) { } // Binary try { jedis.set(bfoo, bbar); jedis.llen(bfoo); - fail("JedisException expected"); - } catch (final JedisException e) { + fail("JedisDataException expected"); + } catch (final JedisDataException e) { } } @@ -592,10 +590,6 @@ public class ListCommandsTest extends JedisCommandTestBase { j.lpush("foo", "a"); } catch (InterruptedException e) { e.printStackTrace(); - } catch (UnknownHostException e) { - e.printStackTrace(); - } catch (IOException e) { - e.printStackTrace(); } } })).start(); @@ -614,10 +608,6 @@ public class ListCommandsTest extends JedisCommandTestBase { j.lpush("foo", "a"); } catch (InterruptedException e) { e.printStackTrace(); - } catch (UnknownHostException e) { - e.printStackTrace(); - } catch (IOException e) { - e.printStackTrace(); } } })).start(); diff --git a/src/test/java/redis/clients/jedis/tests/commands/PublishSubscribeCommandsTest.java b/src/test/java/redis/clients/jedis/tests/commands/PublishSubscribeCommandsTest.java index f2e9ee0..9ce0147 100644 --- a/src/test/java/redis/clients/jedis/tests/commands/PublishSubscribeCommandsTest.java +++ b/src/test/java/redis/clients/jedis/tests/commands/PublishSubscribeCommandsTest.java @@ -8,14 +8,13 @@ import org.junit.Test; import redis.clients.jedis.BinaryJedisPubSub; import redis.clients.jedis.Jedis; -import redis.clients.jedis.JedisException; import redis.clients.jedis.JedisPubSub; +import redis.clients.jedis.exceptions.JedisDataException; import redis.clients.util.SafeEncoder; public class PublishSubscribeCommandsTest extends JedisCommandTestBase { @Test - public void subscribe() throws UnknownHostException, IOException, - InterruptedException { + public void subscribe() throws InterruptedException { Thread t = new Thread(new Runnable() { public void run() { try { @@ -498,7 +497,7 @@ public class PublishSubscribeCommandsTest extends JedisCommandTestBase { }, "foo"); } catch (NullPointerException ex) { fail(); - } catch (JedisException ex) { + } catch (JedisDataException ex) { // this is OK because we are not sending AUTH command } } diff --git a/src/test/java/redis/clients/jedis/tests/commands/StringValuesCommandsTest.java b/src/test/java/redis/clients/jedis/tests/commands/StringValuesCommandsTest.java index 77d18db..fcf9f99 100644 --- a/src/test/java/redis/clients/jedis/tests/commands/StringValuesCommandsTest.java +++ b/src/test/java/redis/clients/jedis/tests/commands/StringValuesCommandsTest.java @@ -5,7 +5,7 @@ import java.util.List; import org.junit.Test; -import redis.clients.jedis.JedisException; +import redis.clients.jedis.exceptions.JedisDataException; public class StringValuesCommandsTest extends JedisCommandTestBase { @Test @@ -95,7 +95,7 @@ public class StringValuesCommandsTest extends JedisCommandTestBase { assertEquals("foo", jedis.get("bar")); } - @Test(expected = JedisException.class) + @Test(expected = JedisDataException.class) public void incrWrongValue() { jedis.set("foo", "bar"); jedis.incr("foo"); @@ -109,7 +109,7 @@ public class StringValuesCommandsTest extends JedisCommandTestBase { assertEquals(2, value); } - @Test(expected = JedisException.class) + @Test(expected = JedisDataException.class) public void incrByWrongValue() { jedis.set("foo", "bar"); jedis.incrBy("foo", 2); @@ -123,7 +123,7 @@ public class StringValuesCommandsTest extends JedisCommandTestBase { assertEquals(4, value); } - @Test(expected = JedisException.class) + @Test(expected = JedisDataException.class) public void decrWrongValue() { jedis.set("foo", "bar"); jedis.decr("foo"); @@ -137,7 +137,7 @@ public class StringValuesCommandsTest extends JedisCommandTestBase { assertEquals(-2, value); } - @Test(expected = JedisException.class) + @Test(expected = JedisDataException.class) public void decrByWrongValue() { jedis.set("foo", "bar"); jedis.decrBy("foo", 2); @@ -184,7 +184,7 @@ public class StringValuesCommandsTest extends JedisCommandTestBase { Integer.MAX_VALUE)); } - @Test(expected = JedisException.class) + @Test(expected = JedisDataException.class) public void incrReallyLargeNumbers() { jedis.set("foo", Long.toString(Long.MAX_VALUE)); long value = jedis.incr("foo"); diff --git a/src/test/java/redis/clients/jedis/tests/commands/TransactionCommandsTest.java b/src/test/java/redis/clients/jedis/tests/commands/TransactionCommandsTest.java index 1681f5b..379167f 100644 --- a/src/test/java/redis/clients/jedis/tests/commands/TransactionCommandsTest.java +++ b/src/test/java/redis/clients/jedis/tests/commands/TransactionCommandsTest.java @@ -10,11 +10,11 @@ import org.junit.Before; import org.junit.Test; import redis.clients.jedis.Jedis; -import redis.clients.jedis.JedisException; import redis.clients.jedis.Protocol; import redis.clients.jedis.Transaction; import redis.clients.jedis.TransactionBlock; import redis.clients.jedis.Protocol.Keyword; +import redis.clients.jedis.exceptions.JedisDataException; public class TransactionCommandsTest extends JedisCommandTestBase { final byte[] bfoo = { 0x01, 0x02, 0x03, 0x04 }; @@ -27,7 +27,7 @@ public class TransactionCommandsTest extends JedisCommandTestBase { Jedis nj; @Override - @Before + @Before public void setUp() throws Exception { super.setUp(); @@ -84,7 +84,7 @@ public class TransactionCommandsTest extends JedisCommandTestBase { public void multiBlock() { List response = jedis.multi(new TransactionBlock() { @Override - public void execute() { + public void execute() { String status = sadd("foo", "a"); assertEquals(Keyword.QUEUED.name(), status); @@ -105,7 +105,7 @@ public class TransactionCommandsTest extends JedisCommandTestBase { // Binary response = jedis.multi(new TransactionBlock() { @Override - public void execute() { + public void execute() { String status = sadd(bfoo, ba); assertEquals(Keyword.QUEUED.name(), status); @@ -195,7 +195,7 @@ public class TransactionCommandsTest extends JedisCommandTestBase { (byte[]) resp.get(0)); } - @Test(expected = JedisException.class) + @Test(expected = JedisDataException.class) public void validateWhenInMulti() { jedis.multi(); jedis.ping();