SLING-9579 - The org.apache.sling.servlets.resolver.internal.resource.MergingServletResourceProvider should not return NonExistingResources
diff --git a/src/main/java/org/apache/sling/servlets/resolver/internal/resource/MergingServletResourceProvider.java b/src/main/java/org/apache/sling/servlets/resolver/internal/resource/MergingServletResourceProvider.java
index 05ebd46..d1d23c1 100644
--- a/src/main/java/org/apache/sling/servlets/resolver/internal/resource/MergingServletResourceProvider.java
+++ b/src/main/java/org/apache/sling/servlets/resolver/internal/resource/MergingServletResourceProvider.java
@@ -31,6 +31,7 @@
 import java.util.concurrent.atomic.AtomicReference;
 
 import org.apache.commons.lang3.tuple.Pair;
+import org.apache.sling.api.resource.NonExistingResource;
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.api.resource.SyntheticResource;
 import org.apache.sling.spi.resource.provider.ResolveContext;
@@ -153,14 +154,15 @@
             }
         }
         else {
-            if (wrapped != null) {
+            if (wrapped != null && !(wrapped instanceof NonExistingResource)) {
                 result = wrapped;
-            }
-            else {
+            } else {
                 result = null;
             }
             if (result == null && tree.get().containsKey(path)) {
                 result = new SyntheticResource(resolveContext.getResourceResolver(), path, ResourceProvider.RESOURCE_TYPE_SYNTHETIC);
+            } else {
+                return wrapped;
             }
         }