From 9198b5fc5045f0d16cf4221bb948f67a5377a8cb Mon Sep 17 00:00:00 2001 From: Gzegoz Jurgo Date: Thu, 25 Jan 2018 15:22:21 +0200 Subject: [PATCH 1/2] JsonJacksonCoded do not override provided objectMapper settings. --- pom.xml | 2 +- .../org/redisson/codec/JsonJacksonCodec.java | 6 +++--- .../redisson/codec/JsonJacksonCodecTest.java | 17 ++++++++++++++++- 3 files changed, 20 insertions(+), 5 deletions(-) diff --git a/pom.xml b/pom.xml index fed0f0f22..2c7c49aab 100644 --- a/pom.xml +++ b/pom.xml @@ -18,7 +18,7 @@ true - 1.6 + 1.8 1.8 UTF-8 diff --git a/redisson/src/main/java/org/redisson/codec/JsonJacksonCodec.java b/redisson/src/main/java/org/redisson/codec/JsonJacksonCodec.java index 747194ae7..4df9a9939 100755 --- a/redisson/src/main/java/org/redisson/codec/JsonJacksonCodec.java +++ b/redisson/src/main/java/org/redisson/codec/JsonJacksonCodec.java @@ -103,9 +103,9 @@ public class JsonJacksonCodec implements Codec { } public JsonJacksonCodec(ObjectMapper mapObjectMapper) { - this.mapObjectMapper = mapObjectMapper; - init(mapObjectMapper); - initTypeInclusion(mapObjectMapper); + this.mapObjectMapper = mapObjectMapper.copy(); + init(this.mapObjectMapper); + initTypeInclusion(this.mapObjectMapper); } protected void initTypeInclusion(ObjectMapper mapObjectMapper) { diff --git a/redisson/src/test/java/org/redisson/codec/JsonJacksonCodecTest.java b/redisson/src/test/java/org/redisson/codec/JsonJacksonCodecTest.java index abdd90a18..c195dadd5 100644 --- a/redisson/src/test/java/org/redisson/codec/JsonJacksonCodecTest.java +++ b/redisson/src/test/java/org/redisson/codec/JsonJacksonCodecTest.java @@ -2,6 +2,8 @@ package org.redisson.codec; import java.io.IOException; +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.ObjectMapper; import org.junit.Assert; import org.junit.Test; @@ -33,5 +35,18 @@ public class JsonJacksonCodecTest { codec.getObjectMapper().readValue(JSON, Bean1599.class); Assert.fail("Should not pass"); } - + + @Test + public void shouldNotOverrideProvidedObjectMapperProperties() throws Exception { + ObjectMapper objectMapper = new ObjectMapper(); + objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, true); + objectMapper.configure(DeserializationFeature.UNWRAP_ROOT_VALUE, false); + JsonJacksonCodec codec = new JsonJacksonCodec(objectMapper); + + Assert.assertTrue(objectMapper.getDeserializationConfig().isEnabled(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES)); + Assert.assertFalse(codec.getObjectMapper().getDeserializationConfig().isEnabled(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES)); + + Assert.assertFalse(objectMapper.getDeserializationConfig().isEnabled(DeserializationFeature.UNWRAP_ROOT_VALUE)); + Assert.assertFalse(codec.getObjectMapper().getDeserializationConfig().isEnabled(DeserializationFeature.UNWRAP_ROOT_VALUE)); + } } From eb4a77f9a1fa3988313e1e54b51147cda022650f Mon Sep 17 00:00:00 2001 From: gzeskas Date: Fri, 26 Jan 2018 11:35:53 +0200 Subject: [PATCH 2/2] Update pom.xml --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 2c7c49aab..fed0f0f22 100644 --- a/pom.xml +++ b/pom.xml @@ -18,7 +18,7 @@ true - 1.8 + 1.6 1.8 UTF-8