Fix #1872
diff --git a/pom.xml b/pom.xml
index 4643347..f3b975f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -10,7 +10,7 @@
 
   <groupId>com.fasterxml.jackson.core</groupId>
   <artifactId>jackson-databind</artifactId>
-  <version>2.8.12-SNAPSHOT</version>
+  <version>2.8.11.1-SNAPSHOT</version>
   <name>jackson-databind</name>
   <packaging>bundle</packaging>
   <description>General data-binding functionality for Jackson: works on core streaming API</description>
diff --git a/release-notes/VERSION b/release-notes/VERSION
index caf4073..b0becca 100644
--- a/release-notes/VERSION
+++ b/release-notes/VERSION
@@ -3,6 +3,12 @@
 === Releases ===
 ------------------------------------------------------------------------
 
+2.8.11.1 (not yet released)
+
+#1872 `NullPointerException` in `SubTypeValidator.validateSubType` when
+  validating Spring interface
+ (reported by Rob W)
+
 2.8.11 (24-Dec-2017)
 
 #1604: Nested type arguments doesn't work with polymorphic types
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 4f07948..d93745c 100644
--- a/src/main/java/com/fasterxml/jackson/databind/deser/BeanDeserializerFactory.java
+++ b/src/main/java/com/fasterxml/jackson/databind/deser/BeanDeserializerFactory.java
@@ -13,7 +13,6 @@
 import com.fasterxml.jackson.databind.introspect.*;
 import com.fasterxml.jackson.databind.jsontype.TypeDeserializer;
 import com.fasterxml.jackson.databind.jsontype.impl.SubTypeValidator;
-import com.fasterxml.jackson.databind.util.ArrayBuilders;
 import com.fasterxml.jackson.databind.util.ClassUtil;
 import com.fasterxml.jackson.databind.util.SimpleBeanPropertyDefinition;
 
diff --git a/src/main/java/com/fasterxml/jackson/databind/jsontype/impl/SubTypeValidator.java b/src/main/java/com/fasterxml/jackson/databind/jsontype/impl/SubTypeValidator.java
index 45a7616..42273e0 100644
--- a/src/main/java/com/fasterxml/jackson/databind/jsontype/impl/SubTypeValidator.java
+++ b/src/main/java/com/fasterxml/jackson/databind/jsontype/impl/SubTypeValidator.java
@@ -79,8 +79,9 @@
 
             // 18-Dec-2017, tatu: As per [databind#1855], need bit more sophisticated handling
             //    for some Spring framework types
-            if (full.startsWith(PREFIX_STRING)) {
-                for (Class<?> cls = raw; cls != Object.class; cls = cls.getSuperclass()) {
+            // 05-Jan-2017, tatu: ... also, only applies to classes, not interfaces
+            if (!raw.isInterface() && full.startsWith(PREFIX_STRING)) {
+                for (Class<?> cls = raw; (cls != null) && (cls != Object.class); cls = cls.getSuperclass()) {
                     String name = cls.getSimpleName();
                     // looking for "AbstractBeanFactoryPointcutAdvisor" but no point to allow any is there?
                     if ("AbstractPointcutAdvisor".equals(name)
diff --git a/src/test/java/com/fasterxml/jackson/databind/interop/IllegalTypesCheckTest.java b/src/test/java/com/fasterxml/jackson/databind/interop/IllegalTypesCheckTest.java
index 8670e6a..6ed6540 100644
--- a/src/test/java/com/fasterxml/jackson/databind/interop/IllegalTypesCheckTest.java
+++ b/src/test/java/com/fasterxml/jackson/databind/interop/IllegalTypesCheckTest.java
@@ -1,7 +1,10 @@
 package com.fasterxml.jackson.databind.interop;
 
+import java.util.*;
+
 import org.springframework.jacksontest.BogusApplicationContext;
 import org.springframework.jacksontest.BogusPointcutAdvisor;
+import org.springframework.jacksontest.GrantedAuthority;
 
 import com.fasterxml.jackson.annotation.JsonTypeInfo;
 import com.fasterxml.jackson.databind.*;
@@ -22,7 +25,11 @@
                 include = JsonTypeInfo.As.WRAPPER_ARRAY)
         public Object v;
     }
-    
+
+    static class Authentication1872 {
+         public List<GrantedAuthority> authorities = new ArrayList<GrantedAuthority>();
+    }
+
     /*
     /**********************************************************
     /* Unit tests
@@ -94,6 +101,18 @@
     }
     */
 
+    // // // Tests for [databind#1872]
+    public void testJDKTypes1872() throws Exception
+    {
+        ObjectMapper mapper = new ObjectMapper();
+        mapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL, JsonTypeInfo.As.PROPERTY);
+    
+        String json = aposToQuotes(String.format("{'@class':'%s','authorities':['java.util.ArrayList',[]]}",
+                Authentication1872.class.getName()));
+        Authentication1872 result = mapper.readValue(json, Authentication1872.class);
+        assertNotNull(result);
+    }
+
     private void _testIllegalType(Class<?> nasty) throws Exception {
         _testIllegalType(nasty.getName());
     }
diff --git a/src/test/java/org/springframework/jacksontest/GrantedAuthority.java b/src/test/java/org/springframework/jacksontest/GrantedAuthority.java
new file mode 100644
index 0000000..ea9fc9a
--- /dev/null
+++ b/src/test/java/org/springframework/jacksontest/GrantedAuthority.java
@@ -0,0 +1,5 @@
+package org.springframework.jacksontest;
+
+public interface GrantedAuthority {
+
+}