Fix serialization issues with default typing in GenericJackson2JsonRedisSerializer.

Closes #2396
Original pull request: #2399.
This commit is contained in:
Christoph Strobl
2022-09-02 12:03:33 +02:00
committed by Mark Paluch
parent 8034cce7cb
commit 855fd9be5a
2 changed files with 80 additions and 3 deletions

View File

@@ -20,6 +20,7 @@ import java.util.Collections;
import java.util.function.Supplier;
import org.springframework.cache.support.NullValue;
import org.springframework.core.KotlinDetector;
import org.springframework.data.util.Lazy;
import org.springframework.lang.Nullable;
import org.springframework.util.Assert;
@@ -29,7 +30,6 @@ import org.springframework.util.StringUtils;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import com.fasterxml.jackson.annotation.JsonTypeInfo.As;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.TreeNode;
import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.JsonNode;
@@ -351,7 +351,12 @@ public class GenericJackson2JsonRedisSerializer implements RedisSerializer<Objec
t = resolveArrayOrWrapper(t);
if (ClassUtils.isPrimitiveOrWrapper(t.getRawClass())) {
if (t.isEnumType() || ClassUtils.isPrimitiveOrWrapper(t.getRawClass())) {
return false;
}
if (t.isFinal() && !KotlinDetector.isKotlinType(t.getRawClass())
&& t.getRawClass().getPackageName().startsWith("java")) {
return false;
}