This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.resourcemerger-1.2.0
in repository 
https://gitbox.apache.org/repos/asf/sling-org-apache-sling-resourcemerger.git

commit 926228527dfbb1f5870da362eb0aa7f67d37d5e5
Author: Carsten Ziegeler <[email protected]>
AuthorDate: Fri May 16 08:56:00 2014 +0000

    SLING-3521 : Merged resource is not available if parent folder is unreadable
    
    git-svn-id: 
https://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/resourcemerger@1595142
 13f79535-47bb-0310-9956-ffa450edef68
---
 .../impl/MergedResourceProvider.java               | 29 ++++++++++++----------
 1 file changed, 16 insertions(+), 13 deletions(-)

diff --git 
a/src/main/java/org/apache/sling/resourcemerger/impl/MergedResourceProvider.java
 
b/src/main/java/org/apache/sling/resourcemerger/impl/MergedResourceProvider.java
index f7b1bd0..eca50ac 100644
--- 
a/src/main/java/org/apache/sling/resourcemerger/impl/MergedResourceProvider.java
+++ 
b/src/main/java/org/apache/sling/resourcemerger/impl/MergedResourceProvider.java
@@ -55,8 +55,12 @@ public class MergedResourceProvider
         private final String[] childrenToHideArray;
 
         public ParentHidingHandler(final Resource parent) {
-            final ValueMap parentProps = ResourceUtil.getValueMap(parent);
-            this.childrenToHideArray = 
parentProps.get(MergedResourceConstants.PN_HIDE_CHILDREN, String[].class);
+            if ( parent == null ) {
+                this.childrenToHideArray = null;
+            } else {
+                final ValueMap parentProps = parent.getValueMap();
+                this.childrenToHideArray = 
parentProps.get(MergedResourceConstants.PN_HIDE_CHILDREN, String[].class);
+            }
         }
 
         public boolean isHidden(final String name) {
@@ -91,16 +95,15 @@ public class MergedResourceProvider
                 final String fullPath = basePath + relativePath;
 
                 // check parent for hiding
+                // SLING 3521 : if parent is not readable, nothing is hidden
                 final Resource parent = 
resolver.getResource(ResourceUtil.getParent(fullPath));
-                if ( parent != null ) {
-                    final boolean hidden = new 
ParentHidingHandler(parent).isHidden(holder.name);
-                    if ( hidden ) {
-                        holder.resources.clear();
-                    } else {
-                        final Resource baseRes = 
resolver.getResource(fullPath);
-                        if (baseRes != null) {
-                            holder.resources.add(baseRes);
-                        }
+                final boolean hidden = new 
ParentHidingHandler(parent).isHidden(holder.name);
+                if ( hidden ) {
+                    holder.resources.clear();
+                } else {
+                    final Resource baseRes = resolver.getResource(fullPath);
+                    if (baseRes != null) {
+                        holder.resources.add(baseRes);
                     }
                 }
             }
@@ -130,7 +133,7 @@ public class MergedResourceProvider
         while ( index < holder.resources.size() ) {
             final Resource baseRes = holder.resources.get(index);
             // check if resource is hidden
-            final ValueMap props = ResourceUtil.getValueMap(baseRes);
+            final ValueMap props = baseRes.getValueMap();
             holder.valueMaps.add(props);
             if ( props.get(MergedResourceConstants.PN_HIDE_RESOURCE, 
Boolean.FALSE) ) {
                 // clear everything up to now
@@ -186,7 +189,7 @@ public class MergedResourceProvider
 
                         // Check if children need reordering
                         int orderBeforeIndex = -1;
-                        final ValueMap vm = ResourceUtil.getValueMap(child);
+                        final ValueMap vm = child.getValueMap();
                         final String orderBefore = 
vm.get(MergedResourceConstants.PN_ORDER_BEFORE, String.class);
                         if (orderBefore != null && 
!orderBefore.equals(rsrcName)) {
                             // search entry

-- 
To stop receiving notification emails like this one, please contact
"[email protected]" <[email protected]>.

Reply via email to