Add a test for #2787, partial fix (no more NPE, now fails otherwise)
diff --git a/release-notes/CREDITS-2.x b/release-notes/CREDITS-2.x
index 0f1238f..a282451 100644
--- a/release-notes/CREDITS-2.x
+++ b/release-notes/CREDITS-2.x
@@ -1048,3 +1048,7 @@
 Endre Stølsvik (stolsvik@github)
   * Reported #2679: `ObjectMapper.readValue("123", Void.TYPE)` throws "should never occur"
   (2.10.4)
+
+Denis Kostousov (kostousov-ds@github)
+  * Reported #2787 (partial fix): NPE after add mixin for enum
+  (2.10.5)
diff --git a/release-notes/VERSION-2.x b/release-notes/VERSION-2.x
index 005c775..597f63d 100644
--- a/release-notes/VERSION-2.x
+++ b/release-notes/VERSION-2.x
@@ -4,6 +4,11 @@
 === Releases === 
 ------------------------------------------------------------------------
 
+2.10.5 (not yet released)
+
+#2787 (partial fix): NPE after add mixin for enum
+ (reported by Denis K)
+
 2.10.4 (03-May-2020)
 
 #2679: `ObjectMapper.readValue("123", Void.TYPE)` throws "should never occur"
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 0dba88b..202d63e 100644
--- a/src/main/java/com/fasterxml/jackson/databind/introspect/AnnotatedFieldCollector.java
+++ b/src/main/java/com/fasterxml/jackson/databind/introspect/AnnotatedFieldCollector.java
@@ -81,7 +81,7 @@
             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 0000000..9ade19d
--- /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);
+    }
+}