[
https://issues.apache.org/jira/browse/SLING-10012?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17252430#comment-17252430
]
Konrad Windszus edited comment on SLING-10012 at 12/20/20, 1:24 PM:
--------------------------------------------------------------------
The problem is that
https://github.com/apache/sling-org-apache-sling-scripting-sightly/blob/e9ef63d41be9637285d779529e381357a88e7cce/src/main/java/org/apache/sling/scripting/sightly/impl/engine/bundled/BundledUnitManagerImpl.java#L115
is called with {{identifier}} {{simple.html}} which leads to the
{{defaultLocations}}
- /apps/myA/simple.html and
- myA/simple.html
The problem is that only the bundle containing precompiled source {{a.html}} is
returned by the {{bundleRenderUnit.getTypeProviders().getBundle}}, which
doesn't provide the class with any of the names generated from the
{{defaultLocations}}.
The bundle providing the {{myA/simple.html}} is never returned by
{{bundleRenderUnit.getTypeProviders()}}, therefore the right class loader is
never tried to load the bundled script "simple.html"
(https://github.com/apache/sling-org-apache-sling-scripting-sightly/blob/e9ef63d41be9637285d779529e381357a88e7cce/src/main/java/org/apache/sling/scripting/sightly/impl/engine/bundled/BundledUnitManagerImpl.java#L148)
was (Author: kwin):
The problem is that
https://github.com/apache/sling-org-apache-sling-scripting-sightly/blob/e9ef63d41be9637285d779529e381357a88e7cce/src/main/java/org/apache/sling/scripting/sightly/impl/engine/bundled/BundledUnitManagerImpl.java#L115
is called with {{identifier}} {{simple.html}} which leads to the
{{defaultLocations}}
- /apps/myA/simple.html and
- myA/simple.html
The problem is that only the bundle containing precompiled source {{a.html}} is
returned by the {{bundleRenderUnit.getTypeProviders().getBundle}}, which
doesn't provide the class with any of the names generated from the
{{defaultLocations}}.
The bundle providing the {{myA/simple.html}} is never returned by
{{bundleRenderUnit.getTypeProviders()}}, therefore the right class loader is
never tried to load the bundled script "simple.html"
> Lookup of bundled template files does not work in some cases
> ------------------------------------------------------------
>
> Key: SLING-10012
> URL: https://issues.apache.org/jira/browse/SLING-10012
> Project: Sling
> Issue Type: Bug
> Components: Scripting
> Affects Versions: Scripting HTL Engine 1.4.6-1.4.0
> Reporter: Konrad Windszus
> Priority: Major
>
> I have a resource type {{a}} with a bundled script {{a.html}} which contains
> {code}
> <sly data-sly-use.simpleTemplate="simple.html"
> data-sly-call="${simpleTemplate.simple}"></sly>
> {code}
> I have an extended resource type {{myA}} which has {{a}} as
> resourceSuperType. That one contains {{simple.html}} as bundled script file.
> Still the lookup when trying to render a resource based on {{myA}} fails with
> {code}
> Caused by: org.apache.sling.scripting.sightly.SightlyException: No use
> provider could resolve identifier simple.html
> at
> org.apache.sling.scripting.sightly.impl.engine.extension.use.UseRuntimeExtension.call(UseRuntimeExtension.java:79)
> [org.apache.sling.scripting.sightly:1.4.6.140]
> at
> org.apache.sling.scripting.sightly.impl.engine.runtime.RenderContextImpl.call(RenderContextImpl.java:72)
> [org.apache.sling.scripting.sightly:1.4.6.140]
> at
> org.apache.sling.scripting.sightly.<a>__002e__html.render(container__002e__html.java:62)
> {code}
> It works fine when trying to render a resource directly leveraging {{a}}, but
> in that case obviously the bundled {{a/simple.html}} is used
> Seems that the fix from SLING-9718 has not yet covered this use case.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)