Skip to content

Commit 2a4a43f

Browse files
author
Jonathan Leibiusky
committed
add JedisDataException and JedisConnectionException
1 parent b4ad769 commit 2a4a43f

31 files changed

+271
-265
lines changed

src/main/java/redis/clients/jedis/BinaryJedis.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import java.util.Set;
1212

1313
import redis.clients.jedis.BinaryClient.LIST_POSITION;
14+
import redis.clients.jedis.exceptions.JedisException;
1415
import redis.clients.util.JedisByteHashMap;
1516
import redis.clients.util.SafeEncoder;
1617

src/main/java/redis/clients/jedis/BinaryJedisPubSub.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
import java.util.Arrays;
1111
import java.util.List;
1212

13+
import redis.clients.jedis.exceptions.JedisException;
14+
1315
public abstract class BinaryJedisPubSub {
1416
private int subscribedChannels = 0;
1517
private Client client;

src/main/java/redis/clients/jedis/Connection.java

Lines changed: 14 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,12 @@
33
import java.io.IOException;
44
import java.net.Socket;
55
import java.net.SocketException;
6-
import java.net.UnknownHostException;
76
import java.util.ArrayList;
87
import java.util.List;
98

109
import redis.clients.jedis.Protocol.Command;
10+
import redis.clients.jedis.exceptions.JedisConnectionException;
11+
import redis.clients.jedis.exceptions.JedisException;
1112
import redis.clients.util.RedisInputStream;
1213
import redis.clients.util.RedisOutputStream;
1314
import redis.clients.util.SafeEncoder;
@@ -60,26 +61,14 @@ protected Connection sendCommand(final Command cmd, final String... args) {
6061
}
6162

6263
protected Connection sendCommand(final Command cmd, final byte[]... args) {
63-
try {
64-
connect();
65-
} catch (UnknownHostException e) {
66-
throw new JedisException("Could not connect to redis-server", e);
67-
} catch (IOException e) {
68-
throw new JedisException("Could not connect to redis-server", e);
69-
}
64+
connect();
7065
protocol.sendCommand(outputStream, cmd, args);
7166
pipelinedCommands++;
7267
return this;
7368
}
7469

7570
protected Connection sendCommand(final Command cmd) {
76-
try {
77-
connect();
78-
} catch (UnknownHostException e) {
79-
throw new JedisException("Could not connect to redis-server", e);
80-
} catch (IOException e) {
81-
throw new JedisException("Could not connect to redis-server", e);
82-
}
71+
connect();
8372
protocol.sendCommand(outputStream, cmd, new byte[0][]);
8473
pipelinedCommands++;
8574
return this;
@@ -110,12 +99,16 @@ public void setPort(final int port) {
11099
public Connection() {
111100
}
112101

113-
public void connect() throws UnknownHostException, IOException {
102+
public void connect() {
114103
if (!isConnected()) {
115-
socket = new Socket(host, port);
116-
socket.setSoTimeout(timeout);
117-
outputStream = new RedisOutputStream(socket.getOutputStream());
118-
inputStream = new RedisInputStream(socket.getInputStream());
104+
try {
105+
socket = new Socket(host, port);
106+
socket.setSoTimeout(timeout);
107+
outputStream = new RedisOutputStream(socket.getOutputStream());
108+
inputStream = new RedisInputStream(socket.getInputStream());
109+
} catch (IOException ex) {
110+
throw new JedisConnectionException(ex);
111+
}
119112
}
120113
}
121114

@@ -128,7 +121,7 @@ public void disconnect() {
128121
socket.close();
129122
}
130123
} catch (IOException ex) {
131-
throw new JedisException(ex);
124+
throw new JedisConnectionException(ex);
132125
}
133126
}
134127
}

src/main/java/redis/clients/jedis/Jedis.java

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
package redis.clients.jedis;
22

3-
import java.io.IOException;
4-
import java.net.UnknownHostException;
53
import java.util.ArrayList;
64
import java.util.HashMap;
75
import java.util.HashSet;
@@ -12,6 +10,7 @@
1210
import java.util.Set;
1311

1412
import redis.clients.jedis.BinaryClient.LIST_POSITION;
13+
import redis.clients.jedis.exceptions.JedisDataException;
1514

1615
public class Jedis extends BinaryJedis implements JedisCommands {
1716
public Jedis(final String host) {
@@ -1647,19 +1646,13 @@ public List<Object> multi(TransactionBlock jedisTransaction) {
16471646

16481647
private void runChecks() {
16491648
if (client.isInMulti()) {
1650-
throw new JedisException(
1649+
throw new JedisDataException(
16511650
"Cannot use Jedis when in Multi. Please use JedisTransaction instead.");
16521651
}
1653-
try {
1654-
this.connect();
1655-
} catch (UnknownHostException e) {
1656-
throw new JedisException(e);
1657-
} catch (IOException e) {
1658-
throw new JedisException(e);
1659-
}
1652+
this.connect();
16601653
}
16611654

1662-
public void connect() throws UnknownHostException, IOException {
1655+
public void connect() {
16631656
if (!client.isConnected()) {
16641657
client.connect();
16651658
if (this.password != null) {
@@ -1668,7 +1661,7 @@ public void connect() throws UnknownHostException, IOException {
16681661
}
16691662
}
16701663

1671-
public void disconnect() throws IOException {
1664+
public void disconnect() {
16721665
client.disconnect();
16731666
}
16741667

src/main/java/redis/clients/jedis/JedisException.java

Lines changed: 0 additions & 22 deletions
This file was deleted.

src/main/java/redis/clients/jedis/JedisPubSub.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import java.util.Arrays;
1111
import java.util.List;
1212

13+
import redis.clients.jedis.exceptions.JedisException;
1314
import redis.clients.util.SafeEncoder;
1415

1516
public abstract class JedisPubSub {

src/main/java/redis/clients/jedis/Protocol.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
import java.util.ArrayList;
55
import java.util.List;
66

7+
import redis.clients.jedis.exceptions.JedisConnectionException;
8+
import redis.clients.jedis.exceptions.JedisDataException;
79
import redis.clients.util.RedisInputStream;
810
import redis.clients.util.RedisOutputStream;
911
import redis.clients.util.SafeEncoder;
@@ -44,13 +46,13 @@ private void sendCommand(final RedisOutputStream os, final byte[] command,
4446
}
4547
os.flush();
4648
} catch (IOException e) {
47-
throw new JedisException(e);
49+
throw new JedisConnectionException(e);
4850
}
4951
}
5052

5153
private void processError(final RedisInputStream is) {
5254
String message = is.readLine();
53-
throw new JedisException(message);
55+
throw new JedisDataException(message);
5456
}
5557

5658
private Object process(final RedisInputStream is) {
@@ -67,10 +69,10 @@ private Object process(final RedisInputStream is) {
6769
} else if (b == PLUS_BYTE) {
6870
return processStatusCodeReply(is);
6971
} else {
70-
throw new JedisException("Unknown reply: " + (char) b);
72+
throw new JedisConnectionException("Unknown reply: " + (char) b);
7173
}
7274
} catch (IOException e) {
73-
throw new JedisException(e);
75+
throw new JedisConnectionException(e);
7476
}
7577
return null;
7678
}
@@ -94,7 +96,7 @@ private byte[] processBulkReply(final RedisInputStream is) {
9496
is.readByte();
9597
is.readByte();
9698
} catch (IOException e) {
97-
throw new JedisException(e);
99+
throw new JedisConnectionException(e);
98100
}
99101

100102
return read;

src/main/java/redis/clients/jedis/ShardedJedis.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package redis.clients.jedis;
22

3-
import java.io.IOException;
43
import java.util.Collection;
54
import java.util.List;
65
import java.util.Map;
@@ -28,8 +27,7 @@ public ShardedJedis(List<JedisShardInfo> shards, Hashing algo,
2827
super(shards, algo, keyTagPattern);
2928
}
3029

31-
@Override
32-
public void disconnect() throws IOException {
30+
public void disconnect() {
3331
for (Jedis jedis : getAllShards()) {
3432
jedis.quit();
3533
jedis.disconnect();

src/main/java/redis/clients/jedis/TransactionBlock.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package redis.clients.jedis;
22

3+
import redis.clients.jedis.exceptions.JedisException;
4+
35
public abstract class TransactionBlock extends Transaction {
46
public TransactionBlock(Client client) {
57
super(client);
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package redis.clients.jedis.exceptions;
2+
3+
public class JedisConnectionException extends JedisException {
4+
private static final long serialVersionUID = 3878126572474819403L;
5+
6+
public JedisConnectionException(String message) {
7+
super(message);
8+
}
9+
10+
public JedisConnectionException(Throwable cause) {
11+
super(cause);
12+
}
13+
14+
public JedisConnectionException(String message, Throwable cause) {
15+
super(message, cause);
16+
}
17+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package redis.clients.jedis.exceptions;
2+
3+
public class JedisDataException extends JedisException {
4+
private static final long serialVersionUID = 3878126572474819403L;
5+
6+
public JedisDataException(String message) {
7+
super(message);
8+
}
9+
10+
public JedisDataException(Throwable cause) {
11+
super(cause);
12+
}
13+
14+
public JedisDataException(String message, Throwable cause) {
15+
super(message, cause);
16+
}
17+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package redis.clients.jedis.exceptions;
2+
3+
4+
public class JedisException extends RuntimeException {
5+
private static final long serialVersionUID = -2946266495682282677L;
6+
7+
public JedisException(String message) {
8+
super(message);
9+
}
10+
11+
public JedisException(Throwable e) {
12+
super(e);
13+
}
14+
15+
public JedisException(String message, Throwable cause) {
16+
super(message, cause);
17+
}
18+
}

src/main/java/redis/clients/util/Pool.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
import org.apache.commons.pool.PoolableObjectFactory;
44
import org.apache.commons.pool.impl.GenericObjectPool;
55

6-
import redis.clients.jedis.JedisException;
6+
import redis.clients.jedis.exceptions.JedisConnectionException;
7+
import redis.clients.jedis.exceptions.JedisException;
78

89
public abstract class Pool<T> {
910
private final GenericObjectPool internalPool;
@@ -18,8 +19,8 @@ public T getResource() {
1819
try {
1920
return (T) internalPool.borrowObject();
2021
} catch (Exception e) {
21-
throw new JedisException("Could not get a resource from the pool",
22-
e);
22+
throw new JedisConnectionException(
23+
"Could not get a resource from the pool", e);
2324
}
2425
}
2526

src/main/java/redis/clients/util/RedisInputStream.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@
2020
import java.io.IOException;
2121
import java.io.InputStream;
2222

23-
import redis.clients.jedis.JedisException;
23+
import redis.clients.jedis.exceptions.JedisConnectionException;
24+
import redis.clients.jedis.exceptions.JedisException;
2425

2526
public class RedisInputStream extends FilterInputStream {
2627

@@ -87,13 +88,12 @@ public String readLine() {
8788
}
8889
String reply = sb.toString();
8990
if (reply.length() == 0) {
90-
throw new JedisException(
91+
throw new JedisConnectionException(
9192
"It seems like server has closed the connection.");
9293
}
9394
return reply;
9495
}
9596

96-
@Override
9797
public int read(byte[] b, int off, int len) throws IOException {
9898
if (count == limit) {
9999
fill();

src/main/java/redis/clients/util/SafeEncoder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
import java.io.UnsupportedEncodingException;
44

5-
import redis.clients.jedis.JedisException;
65
import redis.clients.jedis.Protocol;
6+
import redis.clients.jedis.exceptions.JedisException;
77

88
/**
99
* The only reason to have this is to be able to compatible with java 1.5 :(

0 commit comments

Comments
 (0)