aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--release-notes/CREDITS-2.x16
-rw-r--r--release-notes/VERSION-2.x3
-rw-r--r--src/main/java/com/fasterxml/jackson/databind/deser/BeanDeserializerBuilder.java36
3 files changed, 37 insertions, 18 deletions
diff --git a/release-notes/CREDITS-2.x b/release-notes/CREDITS-2.x
index 5aa7375a8..3328b4186 100644
--- a/release-notes/CREDITS-2.x
+++ b/release-notes/CREDITS-2.x
@@ -1099,20 +1099,24 @@ Oleksandr Poslavskyi (alevskyi@github)
Simone D'Avico (simonedavico@github)
* Reported #2632: Failure to resolve generic type parameters on serialization
- (2.11.0)
+ (2.11.0)
Robin Roos (robinroos@github)
* Contributed #2636: ObjectReader readValue lacks Class<T> argument
- (2.11.0)
+ (2.11.0)
Michael Cramer (BigMichi1@github)
* Reported #2725: JsonCreator on static method in Enum and Enum used as key in map
- fails randomly
- (2.11.1)
+ fails randomly
+ (2.11.1)
Oleg Chtchoukine (oshatrk@github)
* Reported #2759: Rearranging of props when property-based generator is in use leads
- to incorrect output
- (2.11.1)
+ to incorrect output
+ (2.11.1)
+Johannes Kuhn (DasBrain@github)
+ * Reported #2760: Jackson doesn't respect `CAN_OVERRIDE_ACCESS_MODIFIERS=false` for
+ deserializer properties
+ (2.11.1)
diff --git a/release-notes/VERSION-2.x b/release-notes/VERSION-2.x
index 684c80bee..f45b95591 100644
--- a/release-notes/VERSION-2.x
+++ b/release-notes/VERSION-2.x
@@ -17,6 +17,9 @@ Project: jackson-databind
#2759: Rearranging of props when property-based generator is in use leads
to incorrect output
(reported by Oleg C)
+#2760: Jackson doesn't respect `CAN_OVERRIDE_ACCESS_MODIFIERS=false` for
+ deserializer properties
+ (reported by Johannes K)
2.11.0 (26-Apr-2020)
diff --git a/src/main/java/com/fasterxml/jackson/databind/deser/BeanDeserializerBuilder.java b/src/main/java/com/fasterxml/jackson/databind/deser/BeanDeserializerBuilder.java
index df2fd60ab..b43bec3dd 100644
--- a/src/main/java/com/fasterxml/jackson/databind/deser/BeanDeserializerBuilder.java
+++ b/src/main/java/com/fasterxml/jackson/databind/deser/BeanDeserializerBuilder.java
@@ -193,7 +193,9 @@ public class BeanDeserializerBuilder
// 15-Sep-2016, tatu: For some reason fixing access at point of `build()` does
// NOT work (2 failing unit tests). Not 100% clear why, but for now force
// access set early; unfortunate, but since it works....
- prop.fixAccess(_config);
+ if (_config.canOverrideAccessModifiers()) {
+ prop.fixAccess(_config);
+ }
_backRefProperties.put(referenceName, prop);
// 16-Jan-2018, tatu: As per [databind#1878] we may want to leave it as is, to allow
// population for cases of "wrong direction", traversing parent first
@@ -213,10 +215,8 @@ public class BeanDeserializerBuilder
if (_injectables == null) {
_injectables = new ArrayList<ValueInjector>();
}
- boolean fixAccess = _config.canOverrideAccessModifiers();
- boolean forceAccess = fixAccess && _config.isEnabled(MapperFeature.OVERRIDE_PUBLIC_ACCESS_MODIFIERS);
- if (fixAccess) {
- member.fixAccess(forceAccess);
+ if ( _config.canOverrideAccessModifiers()) {
+ member.fixAccess(_config.isEnabled(MapperFeature.OVERRIDE_PUBLIC_ACCESS_MODIFIERS));
}
_injectables.add(new ValueInjector(propName, propType, member, valueId));
}
@@ -482,15 +482,22 @@ public class BeanDeserializerBuilder
ignorable = Collections.emptySet();
}
*/
- for (SettableBeanProperty prop : mainProps) {
- /*
- // first: no point forcing access on to-be-ignored properties
- if (ignorable.contains(prop.getName())) {
- continue;
+
+ // 17-Jun-2020, tatu: [databind#2760] means we should not force access
+ // if we are not configured to... at least not "regular" properties
+
+ if (_config.canOverrideAccessModifiers()) {
+ for (SettableBeanProperty prop : mainProps) {
+ /*
+ // first: no point forcing access on to-be-ignored properties
+ if (ignorable.contains(prop.getName())) {
+ continue;
+ }
+ */
+ prop.fixAccess(_config);
}
- */
- prop.fixAccess(_config);
}
+
// 15-Sep-2016, tatu: Access via back-ref properties has been done earlier
// as it has to, for some reason, so not repeated here.
/*
@@ -500,6 +507,11 @@ public class BeanDeserializerBuilder
}
}
*/
+
+ // 17-Jun-2020, tatu: Despite [databind#2760], it seems that methods that
+ // are explicitly defined (any setter via annotation, builder too) can not
+ // be left as-is? May reconsider based on feedback
+
if (_anySetter != null) {
_anySetter.fixAccess(_config);
}