You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ss...@apache.org on 2017/05/09 13:01:37 UTC

svn commit: r1794571 - in /sling/trunk/bundles/extensions/models/impl/src: main/java/org/apache/sling/models/impl/AdapterImplementations.java test/java/org/apache/sling/models/impl/AdapterImplementationsTest.java

Author: sseifert
Date: Tue May  9 13:01:37 2017
New Revision: 1794571

URL: http://svn.apache.org/viewvc?rev=1794571&view=rev
Log:
SLING-6846 Sling Models Impl: Avoid exceptions when resource has no resource type

Modified:
    sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/AdapterImplementations.java
    sling/trunk/bundles/extensions/models/impl/src/test/java/org/apache/sling/models/impl/AdapterImplementationsTest.java

Modified: sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/AdapterImplementations.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/AdapterImplementations.java?rev=1794571&r1=1794570&r2=1794571&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/AdapterImplementations.java (original)
+++ sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/AdapterImplementations.java Tue May  9 13:01:37 2017
@@ -324,6 +324,9 @@ final class AdapterImplementations {
     }
 
     private static Class<?> getClassFromResourceTypeMap(final String resourceType, final Map<String, Class<?>> map, final ResourceResolver resolver) {
+        if (resourceType == null) {
+            return null;
+        }
         Class<?> modelClass = map.get(resourceType);
         if (modelClass == null) {
             for (String searchPath : resolver.getSearchPath()) {

Modified: sling/trunk/bundles/extensions/models/impl/src/test/java/org/apache/sling/models/impl/AdapterImplementationsTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/models/impl/src/test/java/org/apache/sling/models/impl/AdapterImplementationsTest.java?rev=1794571&r1=1794570&r2=1794571&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/models/impl/src/test/java/org/apache/sling/models/impl/AdapterImplementationsTest.java (original)
+++ sling/trunk/bundles/extensions/models/impl/src/test/java/org/apache/sling/models/impl/AdapterImplementationsTest.java Tue May  9 13:01:37 2017
@@ -244,6 +244,16 @@ public class AdapterImplementationsTest
         assertNull(underTest.getModelClassForResource(resource));
     }
     
+    @Test
+    public void testResourceTypeRegistrationForResourceWithoutResourceType() {
+        when(resource.getResourceType()).thenReturn(null);
+        when(resource.getResourceResolver()).thenReturn(resourceResolver);
+        when(resourceResolver.getSearchPath()).thenReturn(new String[] { "/apps/", "/libs/" });
+
+        // ensure we don't have any registrations and no exception is thrown
+        assertNull(underTest.getModelClassForResource(resource));
+    }
+    
     static final class NoneImplementationPicker implements ImplementationPicker {
         @Override
         public Class<?> pick(Class<?> adapterType, Class<?>[] implementationsTypes, Object adaptable) {