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

Reply via email to