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); }