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);