From 9347b0a816f7a3aa4899848c0f63e993ad1a560e Mon Sep 17 00:00:00 2001 From: Nikita Date: Sun, 12 Jun 2016 13:52:54 +0300 Subject: [PATCH] Spring 4.3.0 integration fixed --- .../java/org/redisson/spring/cache/RedissonCache.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/redisson/spring/cache/RedissonCache.java b/src/main/java/org/redisson/spring/cache/RedissonCache.java index ec366a56f..0601fc741 100644 --- a/src/main/java/org/redisson/spring/cache/RedissonCache.java +++ b/src/main/java/org/redisson/spring/cache/RedissonCache.java @@ -16,6 +16,7 @@ package org.redisson.spring.cache; import java.io.IOException; +import java.lang.reflect.Constructor; import java.util.Map; import java.util.concurrent.Callable; import java.util.concurrent.ConcurrentHashMap; @@ -152,7 +153,14 @@ public class RedissonCache implements Cache { try { value = toStoreValue(valueLoader.call()); } catch (Exception ex) { - throw new ValueRetrievalException(key, valueLoader, ex.getCause()); + try { + Class c = Class.forName("org.springframework.cache.Cache$ValueRetrievalException"); + Constructor constructor = c.getConstructor(Object.class, Callable.class, Throwable.class); + RuntimeException exception = (RuntimeException) constructor.newInstance(key, valueLoader, ex.getCause()); + throw exception; + } catch (Exception e) { + throw new IllegalStateException(e); + } } map.put(key, value); }