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

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

commit 157c72aacc393bd30d8bb864cb004a55d2152293
Author: Joerg Hoh <[email protected]>
AuthorDate: Sun Oct 4 12:48:30 2026 +0200

    SLING-13326 add failing unit test case
---
 .../impl/ResourceResolverImplTest.java             | 30 ++++++++++++++++++++++
 1 file changed, 30 insertions(+)

diff --git 
a/src/test/java/org/apache/sling/resourceresolver/impl/ResourceResolverImplTest.java
 
b/src/test/java/org/apache/sling/resourceresolver/impl/ResourceResolverImplTest.java
index abdb2427..46ef768d 100644
--- 
a/src/test/java/org/apache/sling/resourceresolver/impl/ResourceResolverImplTest.java
+++ 
b/src/test/java/org/apache/sling/resourceresolver/impl/ResourceResolverImplTest.java
@@ -39,6 +39,7 @@ import org.apache.sling.api.resource.PersistenceException;
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.api.resource.ResourceResolver;
 import org.apache.sling.api.resource.ResourceResolverFactory;
+import org.apache.sling.api.resource.ResourceWrapper;
 import org.apache.sling.api.resource.SyntheticResource;
 import org.apache.sling.api.security.ResourceAccessSecurity;
 import 
org.apache.sling.resourceresolver.impl.providers.ResourceProviderHandler;
@@ -776,6 +777,35 @@ public class ResourceResolverImplTest {
         Mockito.verify(resolver, 
times(2)).getParentResourceTypeInternal(any(Resource.class));
     }
 
+    /**
+     * @see <a 
href="https://issues.apache.org/jira/browse/SLING-13326";>SLING-13326</a>
+     */
+    @Test
+    public void testGetParentResourceTypeWithOverriddenResourceType() {
+        final PathBasedResourceResolverImpl resolver = 
getPathBasedResourceResolver();
+
+        resolver.add(new SyntheticResourceWithSupertype(
+                resolver, "/foo/pages/special", "types/component", 
"foo/pages/base"));
+        resolver.add(new SyntheticResourceWithSupertype(
+                resolver, "/foo/pages/base", "types/component", 
"generic/pages/page"));
+        resolver.add(new SyntheticResource(resolver, "/generic/pages/page", 
"types/component"));
+        final Resource resource = resolver.add(new SyntheticResource(resolver, 
"/content/foo", "foo/pages/special"));
+        final Resource decorated = new ResourceWrapper(resource) {
+            @Override
+            public String getResourceType() {
+                return "foo/pages/base";
+            }
+        };
+
+        assertEquals(resource.getPath(), decorated.getPath());
+        assertEquals("foo/pages/base", 
resolver.getParentResourceType(resource));
+        assertEquals(
+                "The cached parent type must reflect the wrapper's overridden 
resource type",
+                "generic/pages/page",
+                resolver.getParentResourceType(decorated));
+        assertEquals("foo/pages/base", 
resolver.getParentResourceType(resource));
+    }
+
     private PathBasedResourceResolverImpl getPathBasedResourceResolver() {
         return getPathBasedResourceResolver(new String[] {""});
     }

Reply via email to