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

cziegeler pushed a commit to branch master
in repository 
https://gitbox.apache.org/repos/asf/sling-org-apache-sling-resourceresolver.git


The following commit(s) were added to refs/heads/master by this push:
     new 080b6fb  SLING-10555 : Intermediate synthetic resources not created 
for child resource provider
080b6fb is described below

commit 080b6fb9045ecced4cb8b9aad3e0807e5edcc716
Author: Carsten Ziegeler <[email protected]>
AuthorDate: Fri Jun 25 13:57:37 2021 +0200

    SLING-10555 : Intermediate synthetic resources not created for child 
resource provider
---
 .../resourceresolver/impl/helper/ResourceResolverControl.java  |  2 +-
 .../impl/helper/ResourceResolverControlTest.java               | 10 +++++-----
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git 
a/src/main/java/org/apache/sling/resourceresolver/impl/helper/ResourceResolverControl.java
 
b/src/main/java/org/apache/sling/resourceresolver/impl/helper/ResourceResolverControl.java
index c774a69..efe76f5 100644
--- 
a/src/main/java/org/apache/sling/resourceresolver/impl/helper/ResourceResolverControl.java
+++ 
b/src/main/java/org/apache/sling/resourceresolver/impl/helper/ResourceResolverControl.java
@@ -310,7 +310,7 @@ public class ResourceResolverControl {
                     } else {
                         // if there is a child provider underneath, we need to 
create a synthetic resource
                         // otherwise we need to make sure that no one else is 
providing this child
-                        if ( entry.getValue().getChildren().isEmpty() ) {
+                        if ( !entry.getValue().getChildren().isEmpty() ) {
                             syntheticList.add(new 
SyntheticResource(context.getResourceResolver(), childPath, 
ResourceProvider.RESOURCE_TYPE_SYNTHETIC));
                         } else {
                             visitedNames.add(name);
diff --git 
a/src/test/java/org/apache/sling/resourceresolver/impl/helper/ResourceResolverControlTest.java
 
b/src/test/java/org/apache/sling/resourceresolver/impl/helper/ResourceResolverControlTest.java
index bbef17c..0c2690a 100644
--- 
a/src/test/java/org/apache/sling/resourceresolver/impl/helper/ResourceResolverControlTest.java
+++ 
b/src/test/java/org/apache/sling/resourceresolver/impl/helper/ResourceResolverControlTest.java
@@ -546,9 +546,9 @@ public class ResourceResolverControlTest {
 
         final PathTree<ResourceProviderHandler> tree = new 
PathTree<>(handlers);
         
-//        assertChildren( control.listChildrenInternal(context, 
tree.getNode("/libs"), newMockResource("/libs"), null), "/libs/sub1" );
+        assertChildren( control.listChildrenInternal(context, 
tree.getNode("/libs"), newMockResource("/libs"), null), 
newSyntheticResource("/libs/sub1") );
         assertChildren( control.listChildrenInternal(context, 
tree.getNode("/libs/sub1"), newMockResource("/libs/sub1"), null), 
newSyntheticResource("/libs/sub1/xy") );
-        assertChildren( control.listChildrenInternal(context, 
tree.getNode("/libs/sub1/xy"), newMockResource("/libs/sub1/xy"), null), 
newSyntheticResource("/libs/sub1/xy/sub2") );
+        assertChildren( control.listChildrenInternal(context, 
tree.getNode("/libs/sub1/xy"), newMockResource("/libs/sub1/xy"), null) );
         assertChildren( control.listChildrenInternal(context, 
tree.getNode("/libs/sub1/xy/sub2"), newMockResource("/libs/sub1/xy/sub2"), 
null) );
     }
 
@@ -594,12 +594,12 @@ public class ResourceResolverControlTest {
         assertChildren( control.listChildrenInternal(context, 
tree.getNode("/libs/sub1"), newMockResource("/libs/sub1"), 
             Arrays.asList(c1, c2, c3).iterator()), c1, c2, c3 );
 
-        // same as provider, provider not returning resource
+        // same as provider, provider not returning resource -> no resource 
should be returned, provider is shadowing
         final Resource c4 = newMockResource("/libs/sub1/xy/sub2");
         assertChildren( control.listChildrenInternal(context, 
tree.getNode("/libs/sub1/xy"), newMockResource("/libs/sub1/xy"), 
-            Arrays.asList(c4).iterator()), c4 );
+            Arrays.asList(c4).iterator()) );
 
-        // same as provider, provider returning resource
+        // same as provider, provider returning resource, provider resource 
should be returned
         final Resource parent = newMockResource("/libs/sub1/xy");
         final Resource c5 = newMockResource("/libs/sub1/xy/sub2");
         Mockito.when(sub2Provider.getResource("/libs/sub1/xy/sub2", parent, 
null)).thenReturn(c5);

Reply via email to