aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTatu Saloranta <tatu.saloranta@iki.fi>2020-07-31 21:24:21 -0700
committerTatu Saloranta <tatu.saloranta@iki.fi>2020-07-31 21:24:21 -0700
commit8f5d3659ba40e1983d16cf5f551ecce34c71e71a (patch)
tree56d77d1a49acce4b333aa479882988f25e4274f5
parent910edfb634f55cdb8d78ac7d9caf00d8133a11e6 (diff)
downloadjackson-databind-8f5d3659ba40e1983d16cf5f551ecce34c71e71a.tar.gz
Add a failing test for #2803
-rw-r--r--src/main/java/com/fasterxml/jackson/databind/deser/impl/BeanPropertyMap.java8
-rw-r--r--src/test/java/com/fasterxml/jackson/failing/JsonIgnoreProperties2803Test.java36
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);
+ }
+}