From bebbe604e199c7c4b0e5430a032613304d83f614 Mon Sep 17 00:00:00 2001 From: Nikita Date: Thu, 20 Apr 2017 17:11:04 +0300 Subject: [PATCH] NullValue instance should be unwrapped in RedissonCache.get method. #853 --- .../java/org/redisson/spring/cache/CacheConfigSupport.java | 5 +++++ .../src/main/java/org/redisson/spring/cache/NullValue.java | 5 +++++ .../main/java/org/redisson/spring/cache/RedissonCache.java | 4 ++-- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/redisson/src/main/java/org/redisson/spring/cache/CacheConfigSupport.java b/redisson/src/main/java/org/redisson/spring/cache/CacheConfigSupport.java index fa7534278..4235f3fce 100644 --- a/redisson/src/main/java/org/redisson/spring/cache/CacheConfigSupport.java +++ b/redisson/src/main/java/org/redisson/spring/cache/CacheConfigSupport.java @@ -26,6 +26,11 @@ import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.dataformat.yaml.YAMLFactory; +/** + * + * @author Nikita Koksharov + * + */ public class CacheConfigSupport { ObjectMapper jsonMapper = new ObjectMapper(); diff --git a/redisson/src/main/java/org/redisson/spring/cache/NullValue.java b/redisson/src/main/java/org/redisson/spring/cache/NullValue.java index 374dca3cf..563c26066 100644 --- a/redisson/src/main/java/org/redisson/spring/cache/NullValue.java +++ b/redisson/src/main/java/org/redisson/spring/cache/NullValue.java @@ -17,6 +17,11 @@ package org.redisson.spring.cache; import org.springframework.cache.Cache.ValueWrapper; +/** + * + * @author Nikita Koksharov + * + */ public class NullValue implements ValueWrapper { public static final NullValue INSTANCE = new NullValue(); diff --git a/redisson/src/main/java/org/redisson/spring/cache/RedissonCache.java b/redisson/src/main/java/org/redisson/spring/cache/RedissonCache.java index 52dcd665e..f74e85f31 100644 --- a/redisson/src/main/java/org/redisson/spring/cache/RedissonCache.java +++ b/redisson/src/main/java/org/redisson/spring/cache/RedissonCache.java @@ -87,7 +87,7 @@ public class RedissonCache implements Cache { throw new IllegalStateException("Cached value is not of required type [" + type.getName() + "]: " + value); } } - return (T) value; + return (T) fromStoreValue(value); } @Override @@ -165,7 +165,7 @@ public class RedissonCache implements Cache { } protected Object fromStoreValue(Object storeValue) { - if (storeValue == NullValue.INSTANCE) { + if (storeValue.getClass() == NullValue.class) { return null; } return storeValue;