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 2015/05/21 09:23:22 UTC

svn commit: r1680749 - in /sling/trunk/testing/mocks/resourceresolver-mock/src: main/java/org/apache/sling/testing/resourceresolver/ test/java/org/apache/sling/testing/resourceresolver/

Author: sseifert
Date: Thu May 21 07:23:22 2015
New Revision: 1680749

URL: http://svn.apache.org/r1680749
Log:
SLING-4626 NullPointerExceptions in MockResourceResolver (patch provided by Joel Richard)

Modified:
    sling/trunk/testing/mocks/resourceresolver-mock/src/main/java/org/apache/sling/testing/resourceresolver/MockResourceResolver.java
    sling/trunk/testing/mocks/resourceresolver-mock/src/main/java/org/apache/sling/testing/resourceresolver/MockValueMap.java
    sling/trunk/testing/mocks/resourceresolver-mock/src/test/java/org/apache/sling/testing/resourceresolver/RootResourceTypeTest.java

Modified: sling/trunk/testing/mocks/resourceresolver-mock/src/main/java/org/apache/sling/testing/resourceresolver/MockResourceResolver.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/mocks/resourceresolver-mock/src/main/java/org/apache/sling/testing/resourceresolver/MockResourceResolver.java?rev=1680749&r1=1680748&r2=1680749&view=diff
==============================================================================
--- sling/trunk/testing/mocks/resourceresolver-mock/src/main/java/org/apache/sling/testing/resourceresolver/MockResourceResolver.java (original)
+++ sling/trunk/testing/mocks/resourceresolver-mock/src/main/java/org/apache/sling/testing/resourceresolver/MockResourceResolver.java Thu May 21 07:23:22 2015
@@ -135,13 +135,15 @@ public class MockResourceResolver extend
         
         // if not resource found check if this is a reference to a property
         if (resource == null && path != null) {
-            String name = ResourceUtil.getName(path);
             String parentPath = ResourceUtil.getParent(path);
-            Resource parentResource = getResourceInternal(parentPath);
-            if (parentResource!=null) {
-                ValueMap props = ResourceUtil.getValueMap(parentResource);
-                if (props.containsKey(name)) {
-                    return new MockPropertyResource(path, props, this);
+            if (parentPath != null) {
+                String name = ResourceUtil.getName(path);
+                Resource parentResource = getResourceInternal(parentPath);
+                if (parentResource!=null) {
+                    ValueMap props = ResourceUtil.getValueMap(parentResource);
+                    if (props.containsKey(name)) {
+                        return new MockPropertyResource(path, props, this);
+                    }
                 }
             }
         }
@@ -155,7 +157,9 @@ public class MockResourceResolver extend
         }
         
         String normalizedPath = ResourceUtil.normalize(path);
-        if ( normalizedPath.startsWith("/") ) {
+        if (normalizedPath == null) {
+            return null;
+        } else if ( normalizedPath.startsWith("/") ) {
             if ( this.deletedResources.contains(normalizedPath) ) {
                 return null;
             }

Modified: sling/trunk/testing/mocks/resourceresolver-mock/src/main/java/org/apache/sling/testing/resourceresolver/MockValueMap.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/mocks/resourceresolver-mock/src/main/java/org/apache/sling/testing/resourceresolver/MockValueMap.java?rev=1680749&r1=1680748&r2=1680749&view=diff
==============================================================================
--- sling/trunk/testing/mocks/resourceresolver-mock/src/main/java/org/apache/sling/testing/resourceresolver/MockValueMap.java (original)
+++ sling/trunk/testing/mocks/resourceresolver-mock/src/main/java/org/apache/sling/testing/resourceresolver/MockValueMap.java Thu May 21 07:23:22 2015
@@ -132,8 +132,10 @@ public class MockValueMap extends ValueM
     
     private static Map<String, Object> convertForWriteAll(Map<String, Object> map) {
         Map<String,Object> newMap = new HashMap<String, Object>();
-        for (Map.Entry<String, Object> entry : map.entrySet()) {
-            newMap.put(entry.getKey(), convertForWrite(entry.getValue()));
+        if (map != null) {
+            for (Map.Entry<String, Object> entry : map.entrySet()) {
+                newMap.put(entry.getKey(), convertForWrite(entry.getValue()));
+            }
         }
         return newMap;
     }

Modified: sling/trunk/testing/mocks/resourceresolver-mock/src/test/java/org/apache/sling/testing/resourceresolver/RootResourceTypeTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/mocks/resourceresolver-mock/src/test/java/org/apache/sling/testing/resourceresolver/RootResourceTypeTest.java?rev=1680749&r1=1680748&r2=1680749&view=diff
==============================================================================
--- sling/trunk/testing/mocks/resourceresolver-mock/src/test/java/org/apache/sling/testing/resourceresolver/RootResourceTypeTest.java (original)
+++ sling/trunk/testing/mocks/resourceresolver-mock/src/test/java/org/apache/sling/testing/resourceresolver/RootResourceTypeTest.java Thu May 21 07:23:22 2015
@@ -38,11 +38,18 @@ public class RootResourceTypeTest {
         resourceResolver = new MockResourceResolverFactory().getResourceResolver(null);       
     }
 
-    
+
     @Test
     public void testIsResourceResolver() {
         Resource root= resourceResolver.getResource("/");
         Assert.assertTrue(root.isResourceType("rep:root"));
     }
 
+    @Test
+    public void testGetRootParent() {
+        Resource rootParent = resourceResolver.getResource("/..");
+        Assert.assertNull(rootParent);
+    }
+
+
 }