diff --git a/spring-data-redis/pom.xml b/spring-data-redis/pom.xml
index abe27e7e4..58f557015 100644
--- a/spring-data-redis/pom.xml
+++ b/spring-data-redis/pom.xml
@@ -85,7 +85,16 @@
spring-oxm
${org.springframework.version}
-
+
+
+
+ org.codehaus.jackson
+ jackson-core-asl
+
+
+ org.codehaus.jackson
+ jackson-mapper-asl
+
javax.annotation
diff --git a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/connection/jedis/JedisConnection.java b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/connection/jedis/JedisConnection.java
index 6aa857f81..c0acd7bbc 100644
--- a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/connection/jedis/JedisConnection.java
+++ b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/connection/jedis/JedisConnection.java
@@ -41,11 +41,11 @@ import redis.clients.jedis.BinaryJedisPubSub;
import redis.clients.jedis.BinaryTransaction;
import redis.clients.jedis.Client;
import redis.clients.jedis.Jedis;
-import redis.clients.jedis.JedisException;
import redis.clients.jedis.Pipeline;
import redis.clients.jedis.SortingParams;
import redis.clients.jedis.Transaction;
import redis.clients.jedis.ZParams;
+import redis.clients.jedis.exceptions.JedisException;
import redis.clients.util.Pool;
/**
diff --git a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/connection/jedis/JedisUtils.java b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/connection/jedis/JedisUtils.java
index 423b71312..202a7ccbf 100644
--- a/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/connection/jedis/JedisUtils.java
+++ b/spring-data-redis/src/main/java/org/springframework/data/keyvalue/redis/connection/jedis/JedisUtils.java
@@ -40,9 +40,11 @@ import org.springframework.data.keyvalue.redis.connection.SortParameters.Range;
import org.springframework.util.Assert;
import redis.clients.jedis.BinaryJedisPubSub;
-import redis.clients.jedis.JedisException;
import redis.clients.jedis.SortingParams;
import redis.clients.jedis.BinaryClient.LIST_POSITION;
+import redis.clients.jedis.exceptions.JedisConnectionException;
+import redis.clients.jedis.exceptions.JedisDataException;
+import redis.clients.jedis.exceptions.JedisException;
/**
* Helper class featuring methods for Jedis connection handling, providing support for exception translation.
@@ -63,6 +65,14 @@ public abstract class JedisUtils {
* @return converted exception
*/
public static DataAccessException convertJedisAccessException(JedisException ex) {
+ if (ex instanceof JedisDataException) {
+ return new InvalidDataAccessApiUsageException(ex.getMessage(), ex);
+ }
+ if (ex instanceof JedisConnectionException) {
+ return new RedisConnectionFailureException(ex.getMessage(), ex);
+ }
+
+ // fallback to invalid data exception
return new InvalidDataAccessApiUsageException(ex.getMessage(), ex);
}