JsonJacksonCoded do not override provided objectMapper settings.

pull/1263/head
Gzegoz Jurgo 7 years ago
parent 080dd1f020
commit 9198b5fc50

@ -18,7 +18,7 @@
<properties> <properties>
<maven.test.skip>true</maven.test.skip> <maven.test.skip>true</maven.test.skip>
<source.version>1.6</source.version> <source.version>1.8</source.version>
<test.source.version>1.8</test.source.version> <test.source.version>1.8</test.source.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties> </properties>

@ -103,9 +103,9 @@ public class JsonJacksonCodec implements Codec {
} }
public JsonJacksonCodec(ObjectMapper mapObjectMapper) { public JsonJacksonCodec(ObjectMapper mapObjectMapper) {
this.mapObjectMapper = mapObjectMapper; this.mapObjectMapper = mapObjectMapper.copy();
init(mapObjectMapper); init(this.mapObjectMapper);
initTypeInclusion(mapObjectMapper); initTypeInclusion(this.mapObjectMapper);
} }
protected void initTypeInclusion(ObjectMapper mapObjectMapper) { protected void initTypeInclusion(ObjectMapper mapObjectMapper) {

@ -2,6 +2,8 @@ package org.redisson.codec;
import java.io.IOException; import java.io.IOException;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.junit.Assert; import org.junit.Assert;
import org.junit.Test; import org.junit.Test;
@ -34,4 +36,17 @@ public class JsonJacksonCodecTest {
Assert.fail("Should not pass"); 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));
}
} }

Loading…
Cancel
Save