You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cz...@apache.org on 2014/05/16 10:56:00 UTC
svn commit: r1595142 -
/sling/trunk/contrib/extensions/resourcemerger/src/main/java/org/apache/sling/resourcemerger/impl/MergedResourceProvider.java
Author: cziegeler
Date: Fri May 16 08:56:00 2014
New Revision: 1595142
URL: http://svn.apache.org/r1595142
Log:
SLING-3521 : Merged resource is not available if parent folder is unreadable
Modified:
sling/trunk/contrib/extensions/resourcemerger/src/main/java/org/apache/sling/resourcemerger/impl/MergedResourceProvider.java
Modified: sling/trunk/contrib/extensions/resourcemerger/src/main/java/org/apache/sling/resourcemerger/impl/MergedResourceProvider.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/resourcemerger/src/main/java/org/apache/sling/resourcemerger/impl/MergedResourceProvider.java?rev=1595142&r1=1595141&r2=1595142&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/resourcemerger/src/main/java/org/apache/sling/resourcemerger/impl/MergedResourceProvider.java (original)
+++ sling/trunk/contrib/extensions/resourcemerger/src/main/java/org/apache/sling/resourcemerger/impl/MergedResourceProvider.java Fri May 16 08:56:00 2014
@@ -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