diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/main/java/com/fasterxml/jackson/databind/introspect/AnnotatedFieldCollector.java | 2 | ||||
-rw-r--r-- | src/test/java/com/fasterxml/jackson/failing/EnumDeserialization2787Test.java | 42 |
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); + } +} |