This is an automated email from the ASF dual-hosted git repository. rombert pushed a commit to annotated tag org.apache.sling.testing.resourceresolver-mock-1.1.10 in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-testing-resourceresolver-mock.git
commit f7b6d803bfb9cb4a706fa5dcd2a218b8c2b42403 Author: Stefan Seifert <[email protected]> AuthorDate: Thu May 21 07:23:22 2015 +0000 SLING-4626 NullPointerExceptions in MockResourceResolver (patch provided by Joel Richard) git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/testing/mocks/resourceresolver-mock@1680749 13f79535-47bb-0310-9956-ffa450edef68 --- .../testing/resourceresolver/MockResourceResolver.java | 18 +++++++++++------- .../sling/testing/resourceresolver/MockValueMap.java | 6 ++++-- .../testing/resourceresolver/RootResourceTypeTest.java | 9 ++++++++- 3 files changed, 23 insertions(+), 10 deletions(-) diff --git a/src/main/java/org/apache/sling/testing/resourceresolver/MockResourceResolver.java b/src/main/java/org/apache/sling/testing/resourceresolver/MockResourceResolver.java index 86a4a3f..338eef4 100644 --- a/src/main/java/org/apache/sling/testing/resourceresolver/MockResourceResolver.java +++ b/src/main/java/org/apache/sling/testing/resourceresolver/MockResourceResolver.java @@ -135,13 +135,15 @@ public class MockResourceResolver extends SlingAdaptable implements ResourceReso // 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 extends SlingAdaptable implements ResourceReso } String normalizedPath = ResourceUtil.normalize(path); - if ( normalizedPath.startsWith("/") ) { + if (normalizedPath == null) { + return null; + } else if ( normalizedPath.startsWith("/") ) { if ( this.deletedResources.contains(normalizedPath) ) { return null; } diff --git a/src/main/java/org/apache/sling/testing/resourceresolver/MockValueMap.java b/src/main/java/org/apache/sling/testing/resourceresolver/MockValueMap.java index b18b9ea..a17fa7f 100644 --- a/src/main/java/org/apache/sling/testing/resourceresolver/MockValueMap.java +++ b/src/main/java/org/apache/sling/testing/resourceresolver/MockValueMap.java @@ -132,8 +132,10 @@ public class MockValueMap extends ValueMapDecorator { 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; } diff --git a/src/test/java/org/apache/sling/testing/resourceresolver/RootResourceTypeTest.java b/src/test/java/org/apache/sling/testing/resourceresolver/RootResourceTypeTest.java index 9cda4c4..7264f63 100644 --- a/src/test/java/org/apache/sling/testing/resourceresolver/RootResourceTypeTest.java +++ b/src/test/java/org/apache/sling/testing/resourceresolver/RootResourceTypeTest.java @@ -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); + } + + } -- To stop receiving notification emails like this one, please contact "[email protected]" <[email protected]>.
