diff options
author | Tatu Saloranta <tatu.saloranta@iki.fi> | 2020-07-31 21:24:21 -0700 |
---|---|---|
committer | Tatu Saloranta <tatu.saloranta@iki.fi> | 2020-07-31 21:24:21 -0700 |
commit | 8f5d3659ba40e1983d16cf5f551ecce34c71e71a (patch) | |
tree | 56d77d1a49acce4b333aa479882988f25e4274f5 | |
parent | 910edfb634f55cdb8d78ac7d9caf00d8133a11e6 (diff) | |
download | jackson-databind-8f5d3659ba40e1983d16cf5f551ecce34c71e71a.tar.gz |
Add a failing test for #2803
-rw-r--r-- | src/main/java/com/fasterxml/jackson/databind/deser/impl/BeanPropertyMap.java | 8 | ||||
-rw-r--r-- | src/test/java/com/fasterxml/jackson/failing/JsonIgnoreProperties2803Test.java | 36 |
2 files changed, 40 insertions, 4 deletions
diff --git a/src/main/java/com/fasterxml/jackson/databind/deser/impl/BeanPropertyMap.java b/src/main/java/com/fasterxml/jackson/databind/deser/impl/BeanPropertyMap.java index 8a3b6f152..86decf240 100644 --- a/src/main/java/com/fasterxml/jackson/databind/deser/impl/BeanPropertyMap.java +++ b/src/main/java/com/fasterxml/jackson/databind/deser/impl/BeanPropertyMap.java @@ -111,7 +111,7 @@ public class BeanPropertyMap Map<String,List<PropertyName>> aliasDefs) { this(caseInsensitive, props, aliasDefs, Locale.getDefault()); } - + /* Copy constructors used when a property can replace existing one * * @since 2.9.6 @@ -363,7 +363,7 @@ public class BeanPropertyMap } // should we try to re-index? Ordering probably changed but caller probably doesn't want changes... // 26-Feb-2017, tatu: Probably SHOULD handle renaming wrt Aliases? - return new BeanPropertyMap(_caseInsensitive, newProps, _aliasDefs); + return new BeanPropertyMap(_caseInsensitive, newProps, _aliasDefs, _locale); } /* @@ -371,7 +371,7 @@ public class BeanPropertyMap /* Public API, mutators /********************************************************** */ - + /** * Mutant factory method that will use this instance as the base, and * construct an instance that is otherwise same except for excluding @@ -399,7 +399,7 @@ public class BeanPropertyMap } } // should we try to re-index? Apparently no need - return new BeanPropertyMap(_caseInsensitive, newProps, _aliasDefs); + return new BeanPropertyMap(_caseInsensitive, newProps, _aliasDefs, _locale); } @Deprecated // in 2.9.4 -- must call method that takes old and new property to avoid mismatch diff --git a/src/test/java/com/fasterxml/jackson/failing/JsonIgnoreProperties2803Test.java b/src/test/java/com/fasterxml/jackson/failing/JsonIgnoreProperties2803Test.java new file mode 100644 index 000000000..34b50878b --- /dev/null +++ b/src/test/java/com/fasterxml/jackson/failing/JsonIgnoreProperties2803Test.java @@ -0,0 +1,36 @@ +package com.fasterxml.jackson.failing; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.BaseMapTest; +import com.fasterxml.jackson.databind.ObjectMapper; + +public class JsonIgnoreProperties2803Test extends BaseMapTest +{ + // [databind#2803] + static class Building2803 { + @JsonIgnoreProperties({"something"}) + @JsonProperty + private Room2803 lobby; + } + + static class Museum2803 extends Building2803 { + } + + static class Room2803 { + public String id; + public Building2803 something; + } + + private final ObjectMapper MAPPER = newJsonMapper(); + + // [databind#2803] + public void testIgnoreProps2803() throws Exception + { + final String DOC = "{\"lobby\":{\"id\":\"L1\"}}"; + + // Important! Must do both calls, in this order + Museum2803 museum = MAPPER.readValue(DOC, Museum2803.class); + Building2803 building = MAPPER.readValue(DOC, Building2803.class); + } +} |