[ 
https://issues.apache.org/jira/browse/SLING-8562?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16880843#comment-16880843
 ] 

Ben Fortuna commented on SLING-8562:
------------------------------------

Can reproduce issue with both Java 8 and Java 11.

It appears that the jsFunctions are not being registered with the Rhino script 
engine, so it falls back on calling
{code:java}
javax.jcr.Node.getNodes(String){code}
This is possibly also happening with regular bundles, but in such cases the 
Node implementation is an actual JCR node rather than the FsNode partial 
implementation.

I'd be interested to know what the roadmap for Javascript support in Sling 
involves, as Nashorn is being deprecated in favour of GraalVM, so is Rhino the 
preferred script engine?

 

> Unable to resolve ESP scripts loaded from Filesystem Resource Provider
> ----------------------------------------------------------------------
>
>                 Key: SLING-8562
>                 URL: https://issues.apache.org/jira/browse/SLING-8562
>             Project: Sling
>          Issue Type: Bug
>    Affects Versions: Scripting Core 2.0.46, File System Resource Provider 
> 2.1.16
>            Reporter: Ben Fortuna
>            Priority: Major
>
> A simple test fails when trying to load a resource via Sling Filesystem 
> Resource Provider.
> /content/sample/index.json:
> {code:java}
> {
>   "sling:resourceType": "sample/page/index",
>   "jcr:primaryType": "nt:unstructured",
>   "title": "Sample App"
> }{code}
>  
> /apps/sample/page/index/html.esp:
> {code:java}
> <html>
> <head><title>${currentNode.title}</title></head>
> <body></body>
> </html>{code}
>  
> When both content and app are mounted via Filesystem Resource Provider config 
> the following error results:
> {code:java}
> Internal Server Error (500)
> Exception:
> java.lang.UnsupportedOperationException
>   at 
> org.apache.sling.fsprovider.internal.mapper.jcr.FsNode.getNodes(FsNode.java:517)
>   at 
> org.apache.sling.scripting.javascript.wrapper.ScriptableNode.get(ScriptableNode.java:319)
> ...{code}
>  
> Basically the javascript renderer tries to call `Node.getNodes(pattern)` to 
> resolve the property `currentNode.title` but Filesystem Resource Provider 
> doesnt support this method.
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to