aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorTatu Saloranta <tatu.saloranta@iki.fi>2020-06-23 20:16:31 -0700
committerTatu Saloranta <tatu.saloranta@iki.fi>2020-06-23 20:16:31 -0700
commit44a8547480892162446192dd98683de62ded3706 (patch)
treed072f47c2863c464b6264dd5b4effe9db2a200af /src/main/java
parent37413a78bf18e3d6062b428c57414051fc8776ab (diff)
parent1473b0341791205c809982161ebb804d8ed5a359 (diff)
downloadjackson-databind-44a8547480892162446192dd98683de62ded3706.tar.gz
Merge branch '2.11' into 2.12
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/com/fasterxml/jackson/databind/deser/BeanDeserializerFactory.java5
-rw-r--r--src/main/java/com/fasterxml/jackson/databind/util/ClassUtil.java10
2 files changed, 9 insertions, 6 deletions
diff --git a/src/main/java/com/fasterxml/jackson/databind/deser/BeanDeserializerFactory.java b/src/main/java/com/fasterxml/jackson/databind/deser/BeanDeserializerFactory.java
index f0a2648fa..91e6ebc26 100644
--- a/src/main/java/com/fasterxml/jackson/databind/deser/BeanDeserializerFactory.java
+++ b/src/main/java/com/fasterxml/jackson/databind/deser/BeanDeserializerFactory.java
@@ -908,9 +908,8 @@ name, ((AnnotatedParameter) m).getIndex());
if (ClassUtil.isProxyType(type)) {
throw new IllegalArgumentException("Cannot deserialize Proxy class "+type.getName()+" as a Bean");
}
- /* also: can't deserialize some local classes: static are ok; in-method not;
- * other non-static inner classes are ok
- */
+ // also: can't deserialize some local classes: static are ok; in-method not;
+ // other non-static inner classes are ok
typeStr = ClassUtil.isLocalType(type, true);
if (typeStr != null) {
throw new IllegalArgumentException("Cannot deserialize Class "+type.getName()+" (of type "+typeStr+") as a Bean");
diff --git a/src/main/java/com/fasterxml/jackson/databind/util/ClassUtil.java b/src/main/java/com/fasterxml/jackson/databind/util/ClassUtil.java
index e3fb8caad..a80b72a2a 100644
--- a/src/main/java/com/fasterxml/jackson/databind/util/ClassUtil.java
+++ b/src/main/java/com/fasterxml/jackson/databind/util/ClassUtil.java
@@ -184,11 +184,15 @@ public final class ClassUtil
{
/* As per [JACKSON-187], GAE seems to throw SecurityExceptions
* here and there... and GAE itself has a bug, too
- * (see []). Bah. So we need to catch some wayward exceptions on GAE
+ * Bah. So we need to catch some wayward exceptions on GAE
*/
try {
+ final boolean isStatic = Modifier.isStatic(type.getModifiers());
+
// one more: method locals, anonymous, are not good:
- if (hasEnclosingMethod(type)) {
+ // 23-Jun-2020, tatu: [databind#2758] With JDK14+ should allow
+ // local Record types, however
+ if (!isStatic && hasEnclosingMethod(type)) {
return "local/anonymous";
}
/* But how about non-static inner classes? Can't construct
@@ -196,7 +200,7 @@ public final class ClassUtil
* happens to be enclosing... but that gets convoluted)
*/
if (!allowNonStatic) {
- if (isNonStaticInnerClass(type)) {
+ if (!isStatic && getEnclosingClass(type) != null) {
return "non-static member class";
}
}