You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by pa...@apache.org on 2021/11/25 13:19:08 UTC

[sling-org-apache-sling-servlets-resolver] 01/01: SLING-10939: only look scripts by inheritance if it didn't provide a script engine.

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

pauls pushed a commit to branch issues/SLING-10939
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-servlets-resolver.git

commit e950be7e8c1a56268690ace4ac81704554459cf0
Author: Karl Pauls <ka...@gmail.com>
AuthorDate: Thu Nov 25 14:18:52 2021 +0100

    SLING-10939: only look scripts by inheritance if it didn't provide a script engine.
---
 .../servlets/resolver/internal/bundle/BundledScriptTracker.java    | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/main/java/org/apache/sling/servlets/resolver/internal/bundle/BundledScriptTracker.java b/src/main/java/org/apache/sling/servlets/resolver/internal/bundle/BundledScriptTracker.java
index 251b9c3..22cd051 100644
--- a/src/main/java/org/apache/sling/servlets/resolver/internal/bundle/BundledScriptTracker.java
+++ b/src/main/java/org/apache/sling/servlets/resolver/internal/bundle/BundledScriptTracker.java
@@ -198,7 +198,12 @@ public class BundledScriptTracker implements BundleTrackerCustomizer<List<Servic
                         }
                         Set<TypeProvider> aggregate =
                                 Stream.concat(inheritanceChain.stream(), requiresChain.stream()).collect(Collectors.toCollection(LinkedHashSet::new));
-                        executable = bundledRenderUnitFinder.findUnit(bundle.getBundleContext(), inheritanceChain, aggregate);
+                        if (properties.containsKey(ServletResolverConstants.SLING_SERVLET_RESOURCE_SUPER_TYPE) &&
+                                baseTypeProvider.getBundledRenderUnitCapability().getScriptEngineName() != null) {
+                            executable = bundledRenderUnitFinder.findUnit(bundle.getBundleContext(), baseTypeProvider, aggregate);
+                        } else {
+                            executable = bundledRenderUnitFinder.findUnit(bundle.getBundleContext(), inheritanceChain, aggregate);
+                        }
                     } else if (StringUtils.isNotEmpty(bundledRenderUnitCapability.getPath()) && StringUtils.isNotEmpty(
                             bundledRenderUnitCapability.getScriptEngineName())) {
                         Set<TypeProvider> aggregate =