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

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

commit 464a97be4cf6cd2f26b3c45ab376ebf8e7464180
Author: Konrad Windszus <[email protected]>
AuthorDate: Tue Jun 13 12:46:32 2017 +0000

    SLING-6951 correctly hide underlying grand children (which are hidden by 
the grandparent's sling:hideChildren)
    
    git-svn-id: 
https://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/resourcemerger@1798594
 13f79535-47bb-0310-9956-ffa450edef68
---
 .../apache/sling/resourcemerger/impl/MergingResourceProvider.java | 3 ++-
 .../resourcemerger/impl/CommonMergedResourceProviderTest.java     | 8 ++++----
 2 files changed, 6 insertions(+), 5 deletions(-)

diff --git 
a/src/main/java/org/apache/sling/resourcemerger/impl/MergingResourceProvider.java
 
b/src/main/java/org/apache/sling/resourcemerger/impl/MergingResourceProvider.java
index 418cd47..7e55c4f 100644
--- 
a/src/main/java/org/apache/sling/resourcemerger/impl/MergingResourceProvider.java
+++ 
b/src/main/java/org/apache/sling/resourcemerger/impl/MergingResourceProvider.java
@@ -117,7 +117,8 @@ public class MergingResourceProvider extends 
ResourceProvider<Void> {
                                 onlyUnderlying = false;
                             }
                             final ExcludeEntry entry = new ExcludeEntry(value, 
onlyUnderlying);
-                            final Boolean hides = hides(entry, 
previousAncestorName, true);
+                            // check if this entry is applicable at all 
(always assuming the worst case, i.e. non local resource)
+                            final Boolean hides = hides(entry, 
previousAncestorName, false);
                             if (hides != null && hides.booleanValue() == true) 
{
                                 this.entries.add(new ExcludeEntry("*", 
entry.onlyUnderlying));
                                 break;
diff --git 
a/src/test/java/org/apache/sling/resourcemerger/impl/CommonMergedResourceProviderTest.java
 
b/src/test/java/org/apache/sling/resourcemerger/impl/CommonMergedResourceProviderTest.java
index 4cc0d60..3a58c5f 100644
--- 
a/src/test/java/org/apache/sling/resourcemerger/impl/CommonMergedResourceProviderTest.java
+++ 
b/src/test/java/org/apache/sling/resourcemerger/impl/CommonMergedResourceProviderTest.java
@@ -109,7 +109,7 @@ public class CommonMergedResourceProviderTest {
         base = this.resolver.getResource("/apps/base");
         overlay = this.resolver.getResource("/apps/overlay");
         
-        this.provider = new CRUDMergingResourceProvider("/merged", new 
SimpleMergedResourcePicker(), false);
+        this.provider = new CRUDMergingResourceProvider("/merged", new 
SimpleMergedResourcePicker(), true);
     }
 
     @Test
@@ -119,10 +119,10 @@ public class CommonMergedResourceProviderTest {
             .resource("/apps/base/child1").p("property1", "frombase")
             .resource("/apps/base/child2").p("property1", "frombase")
             .resource("/apps/base/child1/grandchild").p("propertygrandchild1", 
"frombase")
-            
.resource("/apps/base/child1/grandchild/grandgrandchild").p("propertygrandgrandchild1",
 "frombase")
+            
.resource("/apps/base/child1/grandchild/grandgrandchildfrombase").p("propertygrandgrandchild1",
 "frombase")
             .resource("/apps/overlay/child1").p("property1", "fromoverlay")
             
.resource("/apps/overlay/child1/grandchild").p("propertygrandchild1", 
"fromoverlay")
-            
.resource("/apps/overlay/child1/grandchild/grandgrandchild").p("propertygrandgrandchild1",
 "fromoverlay")
+            
.resource("/apps/overlay/child1/grandchild/grandgrandchildfromoverlay").p("propertygrandgrandchild1",
 "fromoverlay")
             
.resource("/apps/overlay/child1/grandchild1").p("propertygrandchild1", 
"fromoverlay")
             
.resource("/apps/overlay/child1/grandchild1/grandgrandchild1").p("propertygrandgrandchild1",
 "fromoverlay")
             .resource("/apps/overlay/child3").p("property1", "fromoverlay")
@@ -163,7 +163,7 @@ public class CommonMergedResourceProviderTest {
         
         // all overlay resource are still exposed, because hiding children by 
wildcard only hides children from underlying resources
         Assert.assertThat(iterableGrandGrandchildren, Matchers.contains(
-                ResourceMatchers.nameAndProps("grandgrandchild", 
Collections.singletonMap("propertygrandgrandchild1", (Object)"fromoverlay")))
+                ResourceMatchers.nameAndProps("grandgrandchildfromoverlay", 
Collections.singletonMap("propertygrandgrandchild1", (Object)"fromoverlay")))
         );
         
         // go down two levels (in node which is only available in overlay!)

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

Reply via email to