aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTatu Saloranta <tatu.saloranta@iki.fi>2020-07-08 13:45:39 -0700
committerTatu Saloranta <tatu.saloranta@iki.fi>2020-07-08 13:45:39 -0700
commit01f4caeebf0c1ccb5072fb3173fd0037688a8c2f (patch)
tree7f58fe5fc08b1dcfbf6cbded94d9b306eedbb217 /src
parent85c9c8544f0c4f01e88241acc1573746df4f755d (diff)
parent0ea66a06a70cca0718d4d4dc5b66b1dab4405afb (diff)
downloadjackson-databind-01f4caeebf0c1ccb5072fb3173fd0037688a8c2f.tar.gz
Merge branch '2.11' into 2.12
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/fasterxml/jackson/databind/introspect/AnnotatedFieldCollector.java2
-rw-r--r--src/test/java/com/fasterxml/jackson/failing/EnumDeserialization2787Test.java42
2 files changed, 43 insertions, 1 deletions
diff --git a/src/main/java/com/fasterxml/jackson/databind/introspect/AnnotatedFieldCollector.java b/src/main/java/com/fasterxml/jackson/databind/introspect/AnnotatedFieldCollector.java
index 2c45507a9..d5403cc69 100644
--- a/src/main/java/com/fasterxml/jackson/databind/introspect/AnnotatedFieldCollector.java
+++ b/src/main/java/com/fasterxml/jackson/databind/introspect/AnnotatedFieldCollector.java
@@ -88,7 +88,7 @@ public class AnnotatedFieldCollector
fields.put(f.getName(), b);
}
// And then... any mix-in overrides?
- if (_mixInResolver != null) {
+ if ((fields != null) && (_mixInResolver != null)) {
Class<?> mixin = _mixInResolver.findMixInClassFor(cls);
if (mixin != null) {
_addFieldMixIns(mixin, cls, fields);
diff --git a/src/test/java/com/fasterxml/jackson/failing/EnumDeserialization2787Test.java b/src/test/java/com/fasterxml/jackson/failing/EnumDeserialization2787Test.java
new file mode 100644
index 000000000..9ade19da0
--- /dev/null
+++ b/src/test/java/com/fasterxml/jackson/failing/EnumDeserialization2787Test.java
@@ -0,0 +1,42 @@
+package com.fasterxml.jackson.failing;
+
+import com.fasterxml.jackson.annotation.*;
+
+import com.fasterxml.jackson.databind.*;
+
+public class EnumDeserialization2787Test extends BaseMapTest
+{
+ // [databind#2787]
+ static enum SomeEnum2787 {
+ none,
+ tax10,
+ tax20
+ }
+
+ static enum SomeEnumMixin2787 {
+ @JsonProperty("zero")
+ none,
+ @JsonProperty("TypTyp")
+ tax10,
+ @JsonProperty("PytPyt")
+ tax20
+ }
+
+ /*
+ /**********************************************************
+ /* Test methods
+ /**********************************************************
+ */
+
+ protected final ObjectMapper MAPPER = newJsonMapper();
+
+ // [databind#2787]
+ public void testMixinOnEnumValues2787() throws Exception
+ {
+ ObjectMapper mapper = jsonMapperBuilder()
+ .addMixIn(SomeEnum2787.class, SomeEnumMixin2787.class)
+ .build();
+ SomeEnum2787 result = mapper.readValue(quote("zero"), SomeEnum2787.class);
+ assertEquals(SomeEnum2787.none, result);
+ }
+}