SLING-8761 use getItemOrNull for getParent (#5)



diff --git a/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrResourceProvider.java b/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrResourceProvider.java
index 4f69583..e40afb6 100644
--- a/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrResourceProvider.java
+++ b/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrResourceProvider.java
@@ -32,7 +32,6 @@
 
 import org.jetbrains.annotations.Nullable;
 import org.jetbrains.annotations.NotNull;
-import javax.jcr.AccessDeniedException;
 import javax.jcr.Item;
 import javax.jcr.Node;
 import javax.jcr.RepositoryException;
@@ -357,19 +356,17 @@
                     version = child.getResourceMetadata().getParameterMap().get("v");
                 }
                 if (version == null) {
-                    Item item = ((JcrItemResource<?>) child).getItem();
-                    if ("/".equals(item.getPath())) {
-                        return null;
-                    }
-                    Node parentNode;
-                    try {
-                        parentNode = item.getParent();
-                    } catch(AccessDeniedException e) {
-                        return null;
-                    }
                     String parentPath = ResourceUtil.getParent(child.getPath());
-                    return new JcrNodeResource(ctx.getResourceResolver(), parentPath, version, parentNode,
-                            ctx.getProviderState().getHelperData());
+                    if (parentPath != null) {
+                        Item parentItem = ctx.getProviderState().getResourceFactory()
+                            .getItemOrNull(parentPath);
+                        if (parentItem != null && parentItem.isNode()) {
+                            return new JcrNodeResource(ctx.getResourceResolver(),
+                                parentPath, null, (Node)parentItem,
+                                ctx.getProviderState().getHelperData());
+                        }
+                    }
+                    return null;
                 }
             } catch (RepositoryException e) {
                 logger.warn("Can't get parent for {}", child, e);