Switch Jackson default mapping default from NON_FINAL to EVERYTHING.
Closes #1566 Original pull request: #2237.
This commit is contained in:
committed by
Mark Paluch
parent
e53a5762b1
commit
93c25b0608
@@ -183,6 +183,15 @@ public abstract class Jackson2HashMapperUnitTests extends AbstractHashMapperTest
|
||||
assertBackAndForwardMapping(source);
|
||||
}
|
||||
|
||||
@Test // GH-1566
|
||||
void mapFinalClass() {
|
||||
|
||||
MeFinal source = new MeFinal();
|
||||
source.value = "id-1";
|
||||
|
||||
assertBackAndForwardMapping(source);
|
||||
}
|
||||
|
||||
@Data
|
||||
public static class WithList {
|
||||
List<String> strings;
|
||||
@@ -206,4 +215,9 @@ public abstract class Jackson2HashMapperUnitTests extends AbstractHashMapperTest
|
||||
private LocalDate localDate;
|
||||
private LocalDateTime localDateTime;
|
||||
}
|
||||
|
||||
@Data
|
||||
public static final class MeFinal {
|
||||
private String value;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,11 +20,12 @@ import static org.mockito.Mockito.*;
|
||||
import static org.springframework.test.util.ReflectionTestUtils.*;
|
||||
import static org.springframework.util.ObjectUtils.*;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.mockito.Mockito;
|
||||
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.cache.support.NullValue;
|
||||
|
||||
@@ -141,7 +142,7 @@ class GenericJackson2JsonRedisSerializerUnitTests {
|
||||
void shouldSerializeNullValueWithCustomObjectMapper() {
|
||||
|
||||
ObjectMapper mapper = new ObjectMapper();
|
||||
mapper.enableDefaultTyping(DefaultTyping.NON_FINAL, As.PROPERTY);
|
||||
mapper.enableDefaultTyping(DefaultTyping.EVERYTHING, As.PROPERTY);
|
||||
|
||||
GenericJackson2JsonRedisSerializer.registerNullValueSerializer(mapper, null);
|
||||
GenericJackson2JsonRedisSerializer serializer = new GenericJackson2JsonRedisSerializer(mapper);
|
||||
@@ -149,6 +150,18 @@ class GenericJackson2JsonRedisSerializerUnitTests {
|
||||
serializeAndDeserializeNullValue(serializer);
|
||||
}
|
||||
|
||||
@Test // GH-1566
|
||||
void deserializeShouldBeAbleToRestoreFinalObjectAfterSerialization() {
|
||||
|
||||
GenericJackson2JsonRedisSerializer serializer = new GenericJackson2JsonRedisSerializer();
|
||||
|
||||
FinalObject source = new FinalObject();
|
||||
source.longValue = 1L;
|
||||
source.simpleObject = new SimpleObject(2L);
|
||||
|
||||
assertThat(serializer.deserialize(serializer.serialize(source))).isEqualTo(source);
|
||||
}
|
||||
|
||||
private static void serializeAndDeserializeNullValue(GenericJackson2JsonRedisSerializer serializer) {
|
||||
|
||||
NullValue nv = BeanUtils.instantiateClass(NullValue.class);
|
||||
@@ -201,6 +214,12 @@ class GenericJackson2JsonRedisSerializerUnitTests {
|
||||
|
||||
}
|
||||
|
||||
@Data
|
||||
static final class FinalObject {
|
||||
public Long longValue;
|
||||
SimpleObject simpleObject;
|
||||
}
|
||||
|
||||
static class SimpleObject {
|
||||
|
||||
public Long longValue;
|
||||
|
||||
Reference in New Issue
Block a user