You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sling.apache.org by "Eric Norman (Jira)" <ji...@apache.org> on 2020/10/03 20:25:00 UTC
[jira] [Updated] (SLING-9792) ScriptCache interaction with
RhinoJavaScriptEngineFactory is not thread safe
[ https://issues.apache.org/jira/browse/SLING-9792?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Eric Norman updated SLING-9792:
-------------------------------
Description:
During startup, the RhinoJavaScriptEngineFactory component may become deactivated temporarily. The ScriptCacheImpl#handleEvent (running in another thread) may concurrently attempt to get the script engine from the factory. At this point, the deactivated factory may still be in the engine list because it hasn't been unbound from the ScriptEngineManager yet. In that case, the RhinoJavaScriptEngineFactory#getScriptEngine call from ScriptCacheImpl#handleEvent throws a series of NullPointerExceptions related to usage of field that was nulled during the RhinoJavaScriptEngineFactory#deactivate logic.
For example:
{noformat}
03.10.2020 13:20:29.237 *WARN* [EventAdminAsyncThread #6] org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory addHostObjects: Cannot prepare host object class org.apache.sling.scripting.javascript.wrapper.ScriptableResource
java.lang.NullPointerException: null
at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.addHostObjects(RhinoJavaScriptEngineFactory.java:342) [org.apache.sling.scripting.javascript:3.1.3.20201003201741112]
at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.getRootScope(RhinoJavaScriptEngineFactory.java:195) [org.apache.sling.scripting.javascript:3.1.3.20201003201741112]
at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.getScriptEngine(RhinoJavaScriptEngineFactory.java:142) [org.apache.sling.scripting.javascript:3.1.3.20201003201741112]
at org.apache.sling.scripting.core.impl.jsr223.SortableScriptEngineFactory.getScriptEngine(SortableScriptEngineFactory.java:120) [org.apache.sling.scripting.core:2.3.5.SNAPSHOT]
at org.apache.sling.scripting.core.impl.ScriptCacheImpl.handleEvent(ScriptCacheImpl.java:283) [org.apache.sling.scripting.core:2.3.5.SNAPSHOT]
at org.apache.felix.eventadmin.impl.handler.EventHandlerProxy.sendEvent(EventHandlerProxy.java:415)
at org.apache.felix.eventadmin.impl.tasks.HandlerTask.runWithoutBlacklistTiming(HandlerTask.java:82) [org.apache.felix.eventadmin:1.5.0]
at org.apache.felix.eventadmin.impl.tasks.SyncDeliverTasks.execute(SyncDeliverTasks.java:104) [org.apache.felix.eventadmin:1.5.0]
at org.apache.felix.eventadmin.impl.tasks.AsyncDeliverTasks$TaskExecuter.run(AsyncDeliverTasks.java:166) [org.apache.felix.eventadmin:1.5.0]
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
03.10.2020 13:20:29.239 *WARN* [EventAdminAsyncThread #6] org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory addHostObjects: Cannot prepare host object class org.apache.sling.scripting.javascript.wrapper.ScriptableNode
java.lang.NullPointerException: null
at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.addHostObjects(RhinoJavaScriptEngineFactory.java:342) [org.apache.sling.scripting.javascript:3.1.3.20201003201741112]
at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.getRootScope(RhinoJavaScriptEngineFactory.java:195) [org.apache.sling.scripting.javascript:3.1.3.20201003201741112]
at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.getScriptEngine(RhinoJavaScriptEngineFactory.java:142) [org.apache.sling.scripting.javascript:3.1.3.20201003201741112]
at org.apache.sling.scripting.core.impl.jsr223.SortableScriptEngineFactory.getScriptEngine(SortableScriptEngineFactory.java:120) [org.apache.sling.scripting.core:2.3.5.SNAPSHOT]
at org.apache.sling.scripting.core.impl.ScriptCacheImpl.handleEvent(ScriptCacheImpl.java:283) [org.apache.sling.scripting.core:2.3.5.SNAPSHOT]
at org.apache.felix.eventadmin.impl.handler.EventHandlerProxy.sendEvent(EventHandlerProxy.java:415)
at org.apache.felix.eventadmin.impl.tasks.HandlerTask.runWithoutBlacklistTiming(HandlerTask.java:82) [org.apache.felix.eventadmin:1.5.0]
at org.apache.felix.eventadmin.impl.tasks.SyncDeliverTasks.execute(SyncDeliverTasks.java:104) [org.apache.felix.eventadmin:1.5.0]
at org.apache.felix.eventadmin.impl.tasks.AsyncDeliverTasks$TaskExecuter.run(AsyncDeliverTasks.java:166) [org.apache.felix.eventadmin:1.5.0]
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
03.10.2020 13:20:29.240 *WARN* [EventAdminAsyncThread #6] org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory addHostObjects: Cannot prepare host object class org.apache.sling.scripting.javascript.wrapper.ScriptableProperty
java.lang.NullPointerException: null
at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.addHostObjects(RhinoJavaScriptEngineFactory.java:342) [org.apache.sling.scripting.javascript:3.1.3.20201003201741112]
at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.getRootScope(RhinoJavaScriptEngineFactory.java:195) [org.apache.sling.scripting.javascript:3.1.3.20201003201741112]
at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.getScriptEngine(RhinoJavaScriptEngineFactory.java:142) [org.apache.sling.scripting.javascript:3.1.3.20201003201741112]
at org.apache.sling.scripting.core.impl.jsr223.SortableScriptEngineFactory.getScriptEngine(SortableScriptEngineFactory.java:120) [org.apache.sling.scripting.core:2.3.5.SNAPSHOT]
at org.apache.sling.scripting.core.impl.ScriptCacheImpl.handleEvent(ScriptCacheImpl.java:283) [org.apache.sling.scripting.core:2.3.5.SNAPSHOT]
at org.apache.felix.eventadmin.impl.handler.EventHandlerProxy.sendEvent(EventHandlerProxy.java:415)
at org.apache.felix.eventadmin.impl.tasks.HandlerTask.runWithoutBlacklistTiming(HandlerTask.java:82) [org.apache.felix.eventadmin:1.5.0]
at org.apache.felix.eventadmin.impl.tasks.SyncDeliverTasks.execute(SyncDeliverTasks.java:104) [org.apache.felix.eventadmin:1.5.0]
at org.apache.felix.eventadmin.impl.tasks.AsyncDeliverTasks$TaskExecuter.run(AsyncDeliverTasks.java:166) [org.apache.felix.eventadmin:1.5.0]
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
03.10.2020 13:20:29.242 *WARN* [EventAdminAsyncThread #6] org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory addHostObjects: Cannot prepare host object class org.apache.sling.scripting.javascript.wrapper.ScriptableItemMap
java.lang.NullPointerException: null
at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.addHostObjects(RhinoJavaScriptEngineFactory.java:348) [org.apache.sling.scripting.javascript:3.1.3.20201003201741112]
at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.getRootScope(RhinoJavaScriptEngineFactory.java:195) [org.apache.sling.scripting.javascript:3.1.3.20201003201741112]
at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.getScriptEngine(RhinoJavaScriptEngineFactory.java:142) [org.apache.sling.scripting.javascript:3.1.3.20201003201741112]
at org.apache.sling.scripting.core.impl.jsr223.SortableScriptEngineFactory.getScriptEngine(SortableScriptEngineFactory.java:120) [org.apache.sling.scripting.core:2.3.5.SNAPSHOT]
at org.apache.sling.scripting.core.impl.ScriptCacheImpl.handleEvent(ScriptCacheImpl.java:283) [org.apache.sling.scripting.core:2.3.5.SNAPSHOT]
at org.apache.felix.eventadmin.impl.handler.EventHandlerProxy.sendEvent(EventHandlerProxy.java:415)
at org.apache.felix.eventadmin.impl.tasks.HandlerTask.runWithoutBlacklistTiming(HandlerTask.java:82) [org.apache.felix.eventadmin:1.5.0]
at org.apache.felix.eventadmin.impl.tasks.SyncDeliverTasks.execute(SyncDeliverTasks.java:104) [org.apache.felix.eventadmin:1.5.0]
at org.apache.felix.eventadmin.impl.tasks.AsyncDeliverTasks$TaskExecuter.run(AsyncDeliverTasks.java:166) [org.apache.felix.eventadmin:1.5.0]
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
03.10.2020 13:20:29.243 *WARN* [EventAdminAsyncThread #6] org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory addHostObjects: Cannot prepare host object class org.apache.sling.scripting.javascript.wrapper.ScriptablePrintWriter
java.lang.NullPointerException: null
at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.addHostObjects(RhinoJavaScriptEngineFactory.java:342) [org.apache.sling.scripting.javascript:3.1.3.20201003201741112]
at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.getRootScope(RhinoJavaScriptEngineFactory.java:195) [org.apache.sling.scripting.javascript:3.1.3.20201003201741112]
at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.getScriptEngine(RhinoJavaScriptEngineFactory.java:142) [org.apache.sling.scripting.javascript:3.1.3.20201003201741112]
at org.apache.sling.scripting.core.impl.jsr223.SortableScriptEngineFactory.getScriptEngine(SortableScriptEngineFactory.java:120) [org.apache.sling.scripting.core:2.3.5.SNAPSHOT]
at org.apache.sling.scripting.core.impl.ScriptCacheImpl.handleEvent(ScriptCacheImpl.java:283) [org.apache.sling.scripting.core:2.3.5.SNAPSHOT]
at org.apache.felix.eventadmin.impl.handler.EventHandlerProxy.sendEvent(EventHandlerProxy.java:415)
at org.apache.felix.eventadmin.impl.tasks.HandlerTask.runWithoutBlacklistTiming(HandlerTask.java:82) [org.apache.felix.eventadmin:1.5.0]
at org.apache.felix.eventadmin.impl.tasks.SyncDeliverTasks.execute(SyncDeliverTasks.java:104) [org.apache.felix.eventadmin:1.5.0]
at org.apache.felix.eventadmin.impl.tasks.AsyncDeliverTasks$TaskExecuter.run(AsyncDeliverTasks.java:166) [org.apache.felix.eventadmin:1.5.0]
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
03.10.2020 13:20:29.244 *WARN* [EventAdminAsyncThread #6] org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory addHostObjects: Cannot prepare host object class org.apache.sling.scripting.javascript.wrapper.ScriptableVersionHistory
java.lang.NullPointerException: null
at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.addHostObjects(RhinoJavaScriptEngineFactory.java:342) [org.apache.sling.scripting.javascript:3.1.3.20201003201741112]
at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.getRootScope(RhinoJavaScriptEngineFactory.java:195) [org.apache.sling.scripting.javascript:3.1.3.20201003201741112]
at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.getScriptEngine(RhinoJavaScriptEngineFactory.java:142) [org.apache.sling.scripting.javascript:3.1.3.20201003201741112]
at org.apache.sling.scripting.core.impl.jsr223.SortableScriptEngineFactory.getScriptEngine(SortableScriptEngineFactory.java:120) [org.apache.sling.scripting.core:2.3.5.SNAPSHOT]
at org.apache.sling.scripting.core.impl.ScriptCacheImpl.handleEvent(ScriptCacheImpl.java:283) [org.apache.sling.scripting.core:2.3.5.SNAPSHOT]
at org.apache.felix.eventadmin.impl.handler.EventHandlerProxy.sendEvent(EventHandlerProxy.java:415)
at org.apache.felix.eventadmin.impl.tasks.HandlerTask.runWithoutBlacklistTiming(HandlerTask.java:82) [org.apache.felix.eventadmin:1.5.0]
at org.apache.felix.eventadmin.impl.tasks.SyncDeliverTasks.execute(SyncDeliverTasks.java:104) [org.apache.felix.eventadmin:1.5.0]
at org.apache.felix.eventadmin.impl.tasks.AsyncDeliverTasks$TaskExecuter.run(AsyncDeliverTasks.java:166) [org.apache.felix.eventadmin:1.5.0]
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
03.10.2020 13:20:29.245 *WARN* [EventAdminAsyncThread #6] org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory addHostObjects: Cannot prepare host object class org.apache.sling.scripting.javascript.wrapper.ScriptableVersion
java.lang.NullPointerException: null
at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.addHostObjects(RhinoJavaScriptEngineFactory.java:342) [org.apache.sling.scripting.javascript:3.1.3.20201003201741112]
at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.getRootScope(RhinoJavaScriptEngineFactory.java:195) [org.apache.sling.scripting.javascript:3.1.3.20201003201741112]
at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.getScriptEngine(RhinoJavaScriptEngineFactory.java:142) [org.apache.sling.scripting.javascript:3.1.3.20201003201741112]
at org.apache.sling.scripting.core.impl.jsr223.SortableScriptEngineFactory.getScriptEngine(SortableScriptEngineFactory.java:120) [org.apache.sling.scripting.core:2.3.5.SNAPSHOT]
at org.apache.sling.scripting.core.impl.ScriptCacheImpl.handleEvent(ScriptCacheImpl.java:283) [org.apache.sling.scripting.core:2.3.5.SNAPSHOT]
at org.apache.felix.eventadmin.impl.handler.EventHandlerProxy.sendEvent(EventHandlerProxy.java:415)
at org.apache.felix.eventadmin.impl.tasks.HandlerTask.runWithoutBlacklistTiming(HandlerTask.java:82) [org.apache.felix.eventadmin:1.5.0]
at org.apache.felix.eventadmin.impl.tasks.SyncDeliverTasks.execute(SyncDeliverTasks.java:104) [org.apache.felix.eventadmin:1.5.0]
at org.apache.felix.eventadmin.impl.tasks.AsyncDeliverTasks$TaskExecuter.run(AsyncDeliverTasks.java:166) [org.apache.felix.eventadmin:1.5.0]
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
03.10.2020 13:20:29.245 *WARN* [EventAdminAsyncThread #6] org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory addHostObjects: Cannot prepare host object class org.apache.sling.scripting.javascript.wrapper.ScriptableCalendar
java.lang.NullPointerException: null
at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.addHostObjects(RhinoJavaScriptEngineFactory.java:342) [org.apache.sling.scripting.javascript:3.1.3.20201003201741112]
at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.getRootScope(RhinoJavaScriptEngineFactory.java:195) [org.apache.sling.scripting.javascript:3.1.3.20201003201741112]
at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.getScriptEngine(RhinoJavaScriptEngineFactory.java:142) [org.apache.sling.scripting.javascript:3.1.3.20201003201741112]
at org.apache.sling.scripting.core.impl.jsr223.SortableScriptEngineFactory.getScriptEngine(SortableScriptEngineFactory.java:120) [org.apache.sling.scripting.core:2.3.5.SNAPSHOT]
at org.apache.sling.scripting.core.impl.ScriptCacheImpl.handleEvent(ScriptCacheImpl.java:283) [org.apache.sling.scripting.core:2.3.5.SNAPSHOT]
at org.apache.felix.eventadmin.impl.handler.EventHandlerProxy.sendEvent(EventHandlerProxy.java:415)
at org.apache.felix.eventadmin.impl.tasks.HandlerTask.runWithoutBlacklistTiming(HandlerTask.java:82) [org.apache.felix.eventadmin:1.5.0]
at org.apache.felix.eventadmin.impl.tasks.SyncDeliverTasks.execute(SyncDeliverTasks.java:104) [org.apache.felix.eventadmin:1.5.0]
at org.apache.felix.eventadmin.impl.tasks.AsyncDeliverTasks$TaskExecuter.run(AsyncDeliverTasks.java:166) [org.apache.felix.eventadmin:1.5.0]
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
03.10.2020 13:20:29.246 *WARN* [EventAdminAsyncThread #6] org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory addHostObjects: Cannot prepare host object class org.apache.sling.scripting.javascript.wrapper.ScriptableMap
java.lang.NullPointerException: null
at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.addHostObjects(RhinoJavaScriptEngineFactory.java:342) [org.apache.sling.scripting.javascript:3.1.3.20201003201741112]
at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.getRootScope(RhinoJavaScriptEngineFactory.java:195) [org.apache.sling.scripting.javascript:3.1.3.20201003201741112]
at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.getScriptEngine(RhinoJavaScriptEngineFactory.java:142) [org.apache.sling.scripting.javascript:3.1.3.20201003201741112]
at org.apache.sling.scripting.core.impl.jsr223.SortableScriptEngineFactory.getScriptEngine(SortableScriptEngineFactory.java:120) [org.apache.sling.scripting.core:2.3.5.SNAPSHOT]
at org.apache.sling.scripting.core.impl.ScriptCacheImpl.handleEvent(ScriptCacheImpl.java:283) [org.apache.sling.scripting.core:2.3.5.SNAPSHOT]
at org.apache.felix.eventadmin.impl.handler.EventHandlerProxy.sendEvent(EventHandlerProxy.java:415)
at org.apache.felix.eventadmin.impl.tasks.HandlerTask.runWithoutBlacklistTiming(HandlerTask.java:82) [org.apache.felix.eventadmin:1.5.0]
at org.apache.felix.eventadmin.impl.tasks.SyncDeliverTasks.execute(SyncDeliverTasks.java:104) [org.apache.felix.eventadmin:1.5.0]
at org.apache.felix.eventadmin.impl.tasks.AsyncDeliverTasks$TaskExecuter.run(AsyncDeliverTasks.java:166) [org.apache.felix.eventadmin:1.5.0]
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834) {noformat}
Expected:
RhinoJavaScriptEngineFactory#getScriptEngine should log a warning and return null if the component is no longer active. The series of NPEs should not happen and get logged.
was:
During startup, the RhinoJavaScriptEngineFactory component may become deactivated temporarily. The ScriptCacheImpl#handleEvent (running in another thread) may concurrently attempt to get the script engine from the factory. At this point, the deactivated factory may still be in the engine list because it hasn't been unbound from the ScriptEngineManager yet. In that case, the RhinoJavaScriptEngineFactory#getScriptEngine call from ScriptCacheImpl#handleEvent throws a series of NullPointerExceptions related to usage of field that was nulled during the RhinoJavaScriptEngineFactory#deactivate logic.
For example:
{noformat}
03.10.2020 12:10:41.244 *WARN* [EventAdminAsyncThread #2] org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory addHostObjects: Cannot prepare host object class org.apache.sling.scripting.javascript.wrapper.ScriptableResource03.10.2020 12:10:41.244 *WARN* [EventAdminAsyncThread #2] org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory addHostObjects: Cannot prepare host object class org.apache.sling.scripting.javascript.wrapper.ScriptableResourcejava.lang.NullPointerException: null at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.addHostObjects(RhinoJavaScriptEngineFactory.java:342) [org.apache.sling.scripting.javascript:3.1.3.20201003190729678] at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.getRootScope(RhinoJavaScriptEngineFactory.java:195) [org.apache.sling.scripting.javascript:3.1.3.20201003190729678] at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.getScriptEngine(RhinoJavaScriptEngineFactory.java:142) [org.apache.sling.scripting.javascript:3.1.3.20201003190729678] at org.apache.sling.scripting.core.impl.jsr223.SortableScriptEngineFactory.getScriptEngine(SortableScriptEngineFactory.java:120) [org.apache.sling.scripting.core:2.3.5.SNAPSHOT] at org.apache.sling.scripting.core.impl.ScriptCacheImpl.handleEvent(ScriptCacheImpl.java:283) [org.apache.sling.scripting.core:2.3.5.SNAPSHOT] at org.apache.felix.eventadmin.impl.handler.EventHandlerProxy.sendEvent(EventHandlerProxy.java:415) at org.apache.felix.eventadmin.impl.tasks.HandlerTask.runWithoutBlacklistTiming(HandlerTask.java:82) [org.apache.felix.eventadmin:1.5.0] at org.apache.felix.eventadmin.impl.tasks.SyncDeliverTasks.execute(SyncDeliverTasks.java:104) [org.apache.felix.eventadmin:1.5.0] at org.apache.felix.eventadmin.impl.tasks.AsyncDeliverTasks$TaskExecuter.run(AsyncDeliverTasks.java:166) [org.apache.felix.eventadmin:1.5.0] at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:834)03.10.2020 12:10:41.247 *WARN* [EventAdminAsyncThread #2] org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory addHostObjects: Cannot prepare host object class org.apache.sling.scripting.javascript.wrapper.ScriptableNodejava.lang.NullPointerException: null at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.addHostObjects(RhinoJavaScriptEngineFactory.java:342) [org.apache.sling.scripting.javascript:3.1.3.20201003190729678] at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.getRootScope(RhinoJavaScriptEngineFactory.java:195) [org.apache.sling.scripting.javascript:3.1.3.20201003190729678] at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.getScriptEngine(RhinoJavaScriptEngineFactory.java:142) [org.apache.sling.scripting.javascript:3.1.3.20201003190729678] at org.apache.sling.scripting.core.impl.jsr223.SortableScriptEngineFactory.getScriptEngine(SortableScriptEngineFactory.java:120) [org.apache.sling.scripting.core:2.3.5.SNAPSHOT] at org.apache.sling.scripting.core.impl.ScriptCacheImpl.handleEvent(ScriptCacheImpl.java:283) [org.apache.sling.scripting.core:2.3.5.SNAPSHOT] at org.apache.felix.eventadmin.impl.handler.EventHandlerProxy.sendEvent(EventHandlerProxy.java:415) at org.apache.felix.eventadmin.impl.tasks.HandlerTask.runWithoutBlacklistTiming(HandlerTask.java:82) [org.apache.felix.eventadmin:1.5.0] at org.apache.felix.eventadmin.impl.tasks.SyncDeliverTasks.execute(SyncDeliverTasks.java:104) [org.apache.felix.eventadmin:1.5.0] at org.apache.felix.eventadmin.impl.tasks.AsyncDeliverTasks$TaskExecuter.run(AsyncDeliverTasks.java:166) [org.apache.felix.eventadmin:1.5.0] at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:834)03.10.2020 12:10:41.248 *WARN* [EventAdminAsyncThread #2] org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory addHostObjects: Cannot prepare host object class org.apache.sling.scripting.javascript.wrapper.ScriptablePropertyjava.lang.NullPointerException: null at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.addHostObjects(RhinoJavaScriptEngineFactory.java:342) [org.apache.sling.scripting.javascript:3.1.3.20201003190729678] at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.getRootScope(RhinoJavaScriptEngineFactory.java:195) [org.apache.sling.scripting.javascript:3.1.3.20201003190729678] at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.getScriptEngine(RhinoJavaScriptEngineFactory.java:142) [org.apache.sling.scripting.javascript:3.1.3.20201003190729678] at org.apache.sling.scripting.core.impl.jsr223.SortableScriptEngineFactory.getScriptEngine(SortableScriptEngineFactory.java:120) [org.apache.sling.scripting.core:2.3.5.SNAPSHOT] at org.apache.sling.scripting.core.impl.ScriptCacheImpl.handleEvent(ScriptCacheImpl.java:283) [org.apache.sling.scripting.core:2.3.5.SNAPSHOT] at org.apache.felix.eventadmin.impl.handler.EventHandlerProxy.sendEvent(EventHandlerProxy.java:415) at org.apache.felix.eventadmin.impl.tasks.HandlerTask.runWithoutBlacklistTiming(HandlerTask.java:82) [org.apache.felix.eventadmin:1.5.0] at org.apache.felix.eventadmin.impl.tasks.SyncDeliverTasks.execute(SyncDeliverTasks.java:104) [org.apache.felix.eventadmin:1.5.0] at org.apache.felix.eventadmin.impl.tasks.AsyncDeliverTasks$TaskExecuter.run(AsyncDeliverTasks.java:166) [org.apache.felix.eventadmin:1.5.0] at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:834)03.10.2020 12:10:41.249 *WARN* [EventAdminAsyncThread #2] org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory addHostObjects: Cannot prepare host object class org.apache.sling.scripting.javascript.wrapper.ScriptableItemMapjava.lang.NullPointerException: null at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.addHostObjects(RhinoJavaScriptEngineFactory.java:348) [org.apache.sling.scripting.javascript:3.1.3.20201003190729678] at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.getRootScope(RhinoJavaScriptEngineFactory.java:195) [org.apache.sling.scripting.javascript:3.1.3.20201003190729678] at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.getScriptEngine(RhinoJavaScriptEngineFactory.java:142) [org.apache.sling.scripting.javascript:3.1.3.20201003190729678] at org.apache.sling.scripting.core.impl.jsr223.SortableScriptEngineFactory.getScriptEngine(SortableScriptEngineFactory.java:120) [org.apache.sling.scripting.core:2.3.5.SNAPSHOT] at org.apache.sling.scripting.core.impl.ScriptCacheImpl.handleEvent(ScriptCacheImpl.java:283) [org.apache.sling.scripting.core:2.3.5.SNAPSHOT] at org.apache.felix.eventadmin.impl.handler.EventHandlerProxy.sendEvent(EventHandlerProxy.java:415) at org.apache.felix.eventadmin.impl.tasks.HandlerTask.runWithoutBlacklistTiming(HandlerTask.java:82) [org.apache.felix.eventadmin:1.5.0] at org.apache.felix.eventadmin.impl.tasks.SyncDeliverTasks.execute(SyncDeliverTasks.java:104) [org.apache.felix.eventadmin:1.5.0] at org.apache.felix.eventadmin.impl.tasks.AsyncDeliverTasks$TaskExecuter.run(AsyncDeliverTasks.java:166) [org.apache.felix.eventadmin:1.5.0] at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:834)03.10.2020 12:10:41.250 *WARN* [EventAdminAsyncThread #2] org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory addHostObjects: Cannot prepare host object class org.apache.sling.scripting.javascript.wrapper.ScriptablePrintWriterjava.lang.NullPointerException: null at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.addHostObjects(RhinoJavaScriptEngineFactory.java:342) [org.apache.sling.scripting.javascript:3.1.3.20201003190729678] at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.getRootScope(RhinoJavaScriptEngineFactory.java:195) [org.apache.sling.scripting.javascript:3.1.3.20201003190729678] at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.getScriptEngine(RhinoJavaScriptEngineFactory.java:142) [org.apache.sling.scripting.javascript:3.1.3.20201003190729678] at org.apache.sling.scripting.core.impl.jsr223.SortableScriptEngineFactory.getScriptEngine(SortableScriptEngineFactory.java:120) [org.apache.sling.scripting.core:2.3.5.SNAPSHOT] at org.apache.sling.scripting.core.impl.ScriptCacheImpl.handleEvent(ScriptCacheImpl.java:283) [org.apache.sling.scripting.core:2.3.5.SNAPSHOT] at org.apache.felix.eventadmin.impl.handler.EventHandlerProxy.sendEvent(EventHandlerProxy.java:415) at org.apache.felix.eventadmin.impl.tasks.HandlerTask.runWithoutBlacklistTiming(HandlerTask.java:82) [org.apache.felix.eventadmin:1.5.0] at org.apache.felix.eventadmin.impl.tasks.SyncDeliverTasks.execute(SyncDeliverTasks.java:104) [org.apache.felix.eventadmin:1.5.0] at org.apache.felix.eventadmin.impl.tasks.AsyncDeliverTasks$TaskExecuter.run(AsyncDeliverTasks.java:166) [org.apache.felix.eventadmin:1.5.0] at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:834)03.10.2020 12:10:41.251 *WARN* [EventAdminAsyncThread #2] org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory addHostObjects: Cannot prepare host object class org.apache.sling.scripting.javascript.wrapper.ScriptableVersionHistoryjava.lang.NullPointerException: null at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.addHostObjects(RhinoJavaScriptEngineFactory.java:342) [org.apache.sling.scripting.javascript:3.1.3.20201003190729678] at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.getRootScope(RhinoJavaScriptEngineFactory.java:195) [org.apache.sling.scripting.javascript:3.1.3.20201003190729678] at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.getScriptEngine(RhinoJavaScriptEngineFactory.java:142) [org.apache.sling.scripting.javascript:3.1.3.20201003190729678] at org.apache.sling.scripting.core.impl.jsr223.SortableScriptEngineFactory.getScriptEngine(SortableScriptEngineFactory.java:120) [org.apache.sling.scripting.core:2.3.5.SNAPSHOT] at org.apache.sling.scripting.core.impl.ScriptCacheImpl.handleEvent(ScriptCacheImpl.java:283) [org.apache.sling.scripting.core:2.3.5.SNAPSHOT] at org.apache.felix.eventadmin.impl.handler.EventHandlerProxy.sendEvent(EventHandlerProxy.java:415) at org.apache.felix.eventadmin.impl.tasks.HandlerTask.runWithoutBlacklistTiming(HandlerTask.java:82) [org.apache.felix.eventadmin:1.5.0] at org.apache.felix.eventadmin.impl.tasks.SyncDeliverTasks.execute(SyncDeliverTasks.java:104) [org.apache.felix.eventadmin:1.5.0] at org.apache.felix.eventadmin.impl.tasks.AsyncDeliverTasks$TaskExecuter.run(AsyncDeliverTasks.java:166) [org.apache.felix.eventadmin:1.5.0] at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:834)03.10.2020 12:10:41.251 *WARN* [EventAdminAsyncThread #2] org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory addHostObjects: Cannot prepare host object class org.apache.sling.scripting.javascript.wrapper.ScriptableVersionjava.lang.NullPointerException: null at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.addHostObjects(RhinoJavaScriptEngineFactory.java:342) [org.apache.sling.scripting.javascript:3.1.3.20201003190729678] at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.getRootScope(RhinoJavaScriptEngineFactory.java:195) [org.apache.sling.scripting.javascript:3.1.3.20201003190729678] at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.getScriptEngine(RhinoJavaScriptEngineFactory.java:142) [org.apache.sling.scripting.javascript:3.1.3.20201003190729678] at org.apache.sling.scripting.core.impl.jsr223.SortableScriptEngineFactory.getScriptEngine(SortableScriptEngineFactory.java:120) [org.apache.sling.scripting.core:2.3.5.SNAPSHOT] at org.apache.sling.scripting.core.impl.ScriptCacheImpl.handleEvent(ScriptCacheImpl.java:283) [org.apache.sling.scripting.core:2.3.5.SNAPSHOT] at org.apache.felix.eventadmin.impl.handler.EventHandlerProxy.sendEvent(EventHandlerProxy.java:415) at org.apache.felix.eventadmin.impl.tasks.HandlerTask.runWithoutBlacklistTiming(HandlerTask.java:82) [org.apache.felix.eventadmin:1.5.0] at org.apache.felix.eventadmin.impl.tasks.SyncDeliverTasks.execute(SyncDeliverTasks.java:104) [org.apache.felix.eventadmin:1.5.0] at org.apache.felix.eventadmin.impl.tasks.AsyncDeliverTasks$TaskExecuter.run(AsyncDeliverTasks.java:166) [org.apache.felix.eventadmin:1.5.0] at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:834)03.10.2020 12:10:41.252 *WARN* [EventAdminAsyncThread #2] org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory addHostObjects: Cannot prepare host object class org.apache.sling.scripting.javascript.wrapper.ScriptableCalendarjava.lang.NullPointerException: null at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.addHostObjects(RhinoJavaScriptEngineFactory.java:342) [org.apache.sling.scripting.javascript:3.1.3.20201003190729678] at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.getRootScope(RhinoJavaScriptEngineFactory.java:195) [org.apache.sling.scripting.javascript:3.1.3.20201003190729678] at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.getScriptEngine(RhinoJavaScriptEngineFactory.java:142) [org.apache.sling.scripting.javascript:3.1.3.20201003190729678] at org.apache.sling.scripting.core.impl.jsr223.SortableScriptEngineFactory.getScriptEngine(SortableScriptEngineFactory.java:120) [org.apache.sling.scripting.core:2.3.5.SNAPSHOT] at org.apache.sling.scripting.core.impl.ScriptCacheImpl.handleEvent(ScriptCacheImpl.java:283) [org.apache.sling.scripting.core:2.3.5.SNAPSHOT] at org.apache.felix.eventadmin.impl.handler.EventHandlerProxy.sendEvent(EventHandlerProxy.java:415) at org.apache.felix.eventadmin.impl.tasks.HandlerTask.runWithoutBlacklistTiming(HandlerTask.java:82) [org.apache.felix.eventadmin:1.5.0] at org.apache.felix.eventadmin.impl.tasks.SyncDeliverTasks.execute(SyncDeliverTasks.java:104) [org.apache.felix.eventadmin:1.5.0] at org.apache.felix.eventadmin.impl.tasks.AsyncDeliverTasks$TaskExecuter.run(AsyncDeliverTasks.java:166) [org.apache.felix.eventadmin:1.5.0] at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:834)03.10.2020 12:10:41.253 *WARN* [EventAdminAsyncThread #2] org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory addHostObjects: Cannot prepare host object class org.apache.sling.scripting.javascript.wrapper.ScriptableMapjava.lang.NullPointerException: null at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.addHostObjects(RhinoJavaScriptEngineFactory.java:342) [org.apache.sling.scripting.javascript:3.1.3.20201003190729678] at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.getRootScope(RhinoJavaScriptEngineFactory.java:195) [org.apache.sling.scripting.javascript:3.1.3.20201003190729678] at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.getScriptEngine(RhinoJavaScriptEngineFactory.java:142) [org.apache.sling.scripting.javascript:3.1.3.20201003190729678] at org.apache.sling.scripting.core.impl.jsr223.SortableScriptEngineFactory.getScriptEngine(SortableScriptEngineFactory.java:120) [org.apache.sling.scripting.core:2.3.5.SNAPSHOT] at org.apache.sling.scripting.core.impl.ScriptCacheImpl.handleEvent(ScriptCacheImpl.java:283) [org.apache.sling.scripting.core:2.3.5.SNAPSHOT] at org.apache.felix.eventadmin.impl.handler.EventHandlerProxy.sendEvent(EventHandlerProxy.java:415) at org.apache.felix.eventadmin.impl.tasks.HandlerTask.runWithoutBlacklistTiming(HandlerTask.java:82) [org.apache.felix.eventadmin:1.5.0] at org.apache.felix.eventadmin.impl.tasks.SyncDeliverTasks.execute(SyncDeliverTasks.java:104) [org.apache.felix.eventadmin:1.5.0] at org.apache.felix.eventadmin.impl.tasks.AsyncDeliverTasks$TaskExecuter.run(AsyncDeliverTasks.java:166) [org.apache.felix.eventadmin:1.5.0] at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:834)
{noformat}
Expected:
RhinoJavaScriptEngineFactory#getScriptEngine should log a warning and return null if the component is no longer active. The series of NPEs should not happen and get logged.
> ScriptCache interaction with RhinoJavaScriptEngineFactory is not thread safe
> ----------------------------------------------------------------------------
>
> Key: SLING-9792
> URL: https://issues.apache.org/jira/browse/SLING-9792
> Project: Sling
> Issue Type: Bug
> Reporter: Eric Norman
> Assignee: Eric Norman
> Priority: Major
> Fix For: Scripting JavaScript 3.1.4
>
>
> During startup, the RhinoJavaScriptEngineFactory component may become deactivated temporarily. The ScriptCacheImpl#handleEvent (running in another thread) may concurrently attempt to get the script engine from the factory. At this point, the deactivated factory may still be in the engine list because it hasn't been unbound from the ScriptEngineManager yet. In that case, the RhinoJavaScriptEngineFactory#getScriptEngine call from ScriptCacheImpl#handleEvent throws a series of NullPointerExceptions related to usage of field that was nulled during the RhinoJavaScriptEngineFactory#deactivate logic.
> For example:
>
> {noformat}
> 03.10.2020 13:20:29.237 *WARN* [EventAdminAsyncThread #6] org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory addHostObjects: Cannot prepare host object class org.apache.sling.scripting.javascript.wrapper.ScriptableResource
> java.lang.NullPointerException: null
> at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.addHostObjects(RhinoJavaScriptEngineFactory.java:342) [org.apache.sling.scripting.javascript:3.1.3.20201003201741112]
> at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.getRootScope(RhinoJavaScriptEngineFactory.java:195) [org.apache.sling.scripting.javascript:3.1.3.20201003201741112]
> at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.getScriptEngine(RhinoJavaScriptEngineFactory.java:142) [org.apache.sling.scripting.javascript:3.1.3.20201003201741112]
> at org.apache.sling.scripting.core.impl.jsr223.SortableScriptEngineFactory.getScriptEngine(SortableScriptEngineFactory.java:120) [org.apache.sling.scripting.core:2.3.5.SNAPSHOT]
> at org.apache.sling.scripting.core.impl.ScriptCacheImpl.handleEvent(ScriptCacheImpl.java:283) [org.apache.sling.scripting.core:2.3.5.SNAPSHOT]
> at org.apache.felix.eventadmin.impl.handler.EventHandlerProxy.sendEvent(EventHandlerProxy.java:415)
> at org.apache.felix.eventadmin.impl.tasks.HandlerTask.runWithoutBlacklistTiming(HandlerTask.java:82) [org.apache.felix.eventadmin:1.5.0]
> at org.apache.felix.eventadmin.impl.tasks.SyncDeliverTasks.execute(SyncDeliverTasks.java:104) [org.apache.felix.eventadmin:1.5.0]
> at org.apache.felix.eventadmin.impl.tasks.AsyncDeliverTasks$TaskExecuter.run(AsyncDeliverTasks.java:166) [org.apache.felix.eventadmin:1.5.0]
> at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
> at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
> at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
> at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
> at java.base/java.lang.Thread.run(Thread.java:834)
> 03.10.2020 13:20:29.239 *WARN* [EventAdminAsyncThread #6] org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory addHostObjects: Cannot prepare host object class org.apache.sling.scripting.javascript.wrapper.ScriptableNode
> java.lang.NullPointerException: null
> at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.addHostObjects(RhinoJavaScriptEngineFactory.java:342) [org.apache.sling.scripting.javascript:3.1.3.20201003201741112]
> at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.getRootScope(RhinoJavaScriptEngineFactory.java:195) [org.apache.sling.scripting.javascript:3.1.3.20201003201741112]
> at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.getScriptEngine(RhinoJavaScriptEngineFactory.java:142) [org.apache.sling.scripting.javascript:3.1.3.20201003201741112]
> at org.apache.sling.scripting.core.impl.jsr223.SortableScriptEngineFactory.getScriptEngine(SortableScriptEngineFactory.java:120) [org.apache.sling.scripting.core:2.3.5.SNAPSHOT]
> at org.apache.sling.scripting.core.impl.ScriptCacheImpl.handleEvent(ScriptCacheImpl.java:283) [org.apache.sling.scripting.core:2.3.5.SNAPSHOT]
> at org.apache.felix.eventadmin.impl.handler.EventHandlerProxy.sendEvent(EventHandlerProxy.java:415)
> at org.apache.felix.eventadmin.impl.tasks.HandlerTask.runWithoutBlacklistTiming(HandlerTask.java:82) [org.apache.felix.eventadmin:1.5.0]
> at org.apache.felix.eventadmin.impl.tasks.SyncDeliverTasks.execute(SyncDeliverTasks.java:104) [org.apache.felix.eventadmin:1.5.0]
> at org.apache.felix.eventadmin.impl.tasks.AsyncDeliverTasks$TaskExecuter.run(AsyncDeliverTasks.java:166) [org.apache.felix.eventadmin:1.5.0]
> at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
> at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
> at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
> at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
> at java.base/java.lang.Thread.run(Thread.java:834)
> 03.10.2020 13:20:29.240 *WARN* [EventAdminAsyncThread #6] org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory addHostObjects: Cannot prepare host object class org.apache.sling.scripting.javascript.wrapper.ScriptableProperty
> java.lang.NullPointerException: null
> at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.addHostObjects(RhinoJavaScriptEngineFactory.java:342) [org.apache.sling.scripting.javascript:3.1.3.20201003201741112]
> at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.getRootScope(RhinoJavaScriptEngineFactory.java:195) [org.apache.sling.scripting.javascript:3.1.3.20201003201741112]
> at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.getScriptEngine(RhinoJavaScriptEngineFactory.java:142) [org.apache.sling.scripting.javascript:3.1.3.20201003201741112]
> at org.apache.sling.scripting.core.impl.jsr223.SortableScriptEngineFactory.getScriptEngine(SortableScriptEngineFactory.java:120) [org.apache.sling.scripting.core:2.3.5.SNAPSHOT]
> at org.apache.sling.scripting.core.impl.ScriptCacheImpl.handleEvent(ScriptCacheImpl.java:283) [org.apache.sling.scripting.core:2.3.5.SNAPSHOT]
> at org.apache.felix.eventadmin.impl.handler.EventHandlerProxy.sendEvent(EventHandlerProxy.java:415)
> at org.apache.felix.eventadmin.impl.tasks.HandlerTask.runWithoutBlacklistTiming(HandlerTask.java:82) [org.apache.felix.eventadmin:1.5.0]
> at org.apache.felix.eventadmin.impl.tasks.SyncDeliverTasks.execute(SyncDeliverTasks.java:104) [org.apache.felix.eventadmin:1.5.0]
> at org.apache.felix.eventadmin.impl.tasks.AsyncDeliverTasks$TaskExecuter.run(AsyncDeliverTasks.java:166) [org.apache.felix.eventadmin:1.5.0]
> at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
> at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
> at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
> at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
> at java.base/java.lang.Thread.run(Thread.java:834)
> 03.10.2020 13:20:29.242 *WARN* [EventAdminAsyncThread #6] org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory addHostObjects: Cannot prepare host object class org.apache.sling.scripting.javascript.wrapper.ScriptableItemMap
> java.lang.NullPointerException: null
> at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.addHostObjects(RhinoJavaScriptEngineFactory.java:348) [org.apache.sling.scripting.javascript:3.1.3.20201003201741112]
> at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.getRootScope(RhinoJavaScriptEngineFactory.java:195) [org.apache.sling.scripting.javascript:3.1.3.20201003201741112]
> at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.getScriptEngine(RhinoJavaScriptEngineFactory.java:142) [org.apache.sling.scripting.javascript:3.1.3.20201003201741112]
> at org.apache.sling.scripting.core.impl.jsr223.SortableScriptEngineFactory.getScriptEngine(SortableScriptEngineFactory.java:120) [org.apache.sling.scripting.core:2.3.5.SNAPSHOT]
> at org.apache.sling.scripting.core.impl.ScriptCacheImpl.handleEvent(ScriptCacheImpl.java:283) [org.apache.sling.scripting.core:2.3.5.SNAPSHOT]
> at org.apache.felix.eventadmin.impl.handler.EventHandlerProxy.sendEvent(EventHandlerProxy.java:415)
> at org.apache.felix.eventadmin.impl.tasks.HandlerTask.runWithoutBlacklistTiming(HandlerTask.java:82) [org.apache.felix.eventadmin:1.5.0]
> at org.apache.felix.eventadmin.impl.tasks.SyncDeliverTasks.execute(SyncDeliverTasks.java:104) [org.apache.felix.eventadmin:1.5.0]
> at org.apache.felix.eventadmin.impl.tasks.AsyncDeliverTasks$TaskExecuter.run(AsyncDeliverTasks.java:166) [org.apache.felix.eventadmin:1.5.0]
> at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
> at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
> at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
> at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
> at java.base/java.lang.Thread.run(Thread.java:834)
> 03.10.2020 13:20:29.243 *WARN* [EventAdminAsyncThread #6] org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory addHostObjects: Cannot prepare host object class org.apache.sling.scripting.javascript.wrapper.ScriptablePrintWriter
> java.lang.NullPointerException: null
> at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.addHostObjects(RhinoJavaScriptEngineFactory.java:342) [org.apache.sling.scripting.javascript:3.1.3.20201003201741112]
> at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.getRootScope(RhinoJavaScriptEngineFactory.java:195) [org.apache.sling.scripting.javascript:3.1.3.20201003201741112]
> at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.getScriptEngine(RhinoJavaScriptEngineFactory.java:142) [org.apache.sling.scripting.javascript:3.1.3.20201003201741112]
> at org.apache.sling.scripting.core.impl.jsr223.SortableScriptEngineFactory.getScriptEngine(SortableScriptEngineFactory.java:120) [org.apache.sling.scripting.core:2.3.5.SNAPSHOT]
> at org.apache.sling.scripting.core.impl.ScriptCacheImpl.handleEvent(ScriptCacheImpl.java:283) [org.apache.sling.scripting.core:2.3.5.SNAPSHOT]
> at org.apache.felix.eventadmin.impl.handler.EventHandlerProxy.sendEvent(EventHandlerProxy.java:415)
> at org.apache.felix.eventadmin.impl.tasks.HandlerTask.runWithoutBlacklistTiming(HandlerTask.java:82) [org.apache.felix.eventadmin:1.5.0]
> at org.apache.felix.eventadmin.impl.tasks.SyncDeliverTasks.execute(SyncDeliverTasks.java:104) [org.apache.felix.eventadmin:1.5.0]
> at org.apache.felix.eventadmin.impl.tasks.AsyncDeliverTasks$TaskExecuter.run(AsyncDeliverTasks.java:166) [org.apache.felix.eventadmin:1.5.0]
> at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
> at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
> at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
> at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
> at java.base/java.lang.Thread.run(Thread.java:834)
> 03.10.2020 13:20:29.244 *WARN* [EventAdminAsyncThread #6] org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory addHostObjects: Cannot prepare host object class org.apache.sling.scripting.javascript.wrapper.ScriptableVersionHistory
> java.lang.NullPointerException: null
> at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.addHostObjects(RhinoJavaScriptEngineFactory.java:342) [org.apache.sling.scripting.javascript:3.1.3.20201003201741112]
> at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.getRootScope(RhinoJavaScriptEngineFactory.java:195) [org.apache.sling.scripting.javascript:3.1.3.20201003201741112]
> at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.getScriptEngine(RhinoJavaScriptEngineFactory.java:142) [org.apache.sling.scripting.javascript:3.1.3.20201003201741112]
> at org.apache.sling.scripting.core.impl.jsr223.SortableScriptEngineFactory.getScriptEngine(SortableScriptEngineFactory.java:120) [org.apache.sling.scripting.core:2.3.5.SNAPSHOT]
> at org.apache.sling.scripting.core.impl.ScriptCacheImpl.handleEvent(ScriptCacheImpl.java:283) [org.apache.sling.scripting.core:2.3.5.SNAPSHOT]
> at org.apache.felix.eventadmin.impl.handler.EventHandlerProxy.sendEvent(EventHandlerProxy.java:415)
> at org.apache.felix.eventadmin.impl.tasks.HandlerTask.runWithoutBlacklistTiming(HandlerTask.java:82) [org.apache.felix.eventadmin:1.5.0]
> at org.apache.felix.eventadmin.impl.tasks.SyncDeliverTasks.execute(SyncDeliverTasks.java:104) [org.apache.felix.eventadmin:1.5.0]
> at org.apache.felix.eventadmin.impl.tasks.AsyncDeliverTasks$TaskExecuter.run(AsyncDeliverTasks.java:166) [org.apache.felix.eventadmin:1.5.0]
> at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
> at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
> at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
> at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
> at java.base/java.lang.Thread.run(Thread.java:834)
> 03.10.2020 13:20:29.245 *WARN* [EventAdminAsyncThread #6] org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory addHostObjects: Cannot prepare host object class org.apache.sling.scripting.javascript.wrapper.ScriptableVersion
> java.lang.NullPointerException: null
> at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.addHostObjects(RhinoJavaScriptEngineFactory.java:342) [org.apache.sling.scripting.javascript:3.1.3.20201003201741112]
> at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.getRootScope(RhinoJavaScriptEngineFactory.java:195) [org.apache.sling.scripting.javascript:3.1.3.20201003201741112]
> at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.getScriptEngine(RhinoJavaScriptEngineFactory.java:142) [org.apache.sling.scripting.javascript:3.1.3.20201003201741112]
> at org.apache.sling.scripting.core.impl.jsr223.SortableScriptEngineFactory.getScriptEngine(SortableScriptEngineFactory.java:120) [org.apache.sling.scripting.core:2.3.5.SNAPSHOT]
> at org.apache.sling.scripting.core.impl.ScriptCacheImpl.handleEvent(ScriptCacheImpl.java:283) [org.apache.sling.scripting.core:2.3.5.SNAPSHOT]
> at org.apache.felix.eventadmin.impl.handler.EventHandlerProxy.sendEvent(EventHandlerProxy.java:415)
> at org.apache.felix.eventadmin.impl.tasks.HandlerTask.runWithoutBlacklistTiming(HandlerTask.java:82) [org.apache.felix.eventadmin:1.5.0]
> at org.apache.felix.eventadmin.impl.tasks.SyncDeliverTasks.execute(SyncDeliverTasks.java:104) [org.apache.felix.eventadmin:1.5.0]
> at org.apache.felix.eventadmin.impl.tasks.AsyncDeliverTasks$TaskExecuter.run(AsyncDeliverTasks.java:166) [org.apache.felix.eventadmin:1.5.0]
> at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
> at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
> at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
> at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
> at java.base/java.lang.Thread.run(Thread.java:834)
> 03.10.2020 13:20:29.245 *WARN* [EventAdminAsyncThread #6] org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory addHostObjects: Cannot prepare host object class org.apache.sling.scripting.javascript.wrapper.ScriptableCalendar
> java.lang.NullPointerException: null
> at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.addHostObjects(RhinoJavaScriptEngineFactory.java:342) [org.apache.sling.scripting.javascript:3.1.3.20201003201741112]
> at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.getRootScope(RhinoJavaScriptEngineFactory.java:195) [org.apache.sling.scripting.javascript:3.1.3.20201003201741112]
> at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.getScriptEngine(RhinoJavaScriptEngineFactory.java:142) [org.apache.sling.scripting.javascript:3.1.3.20201003201741112]
> at org.apache.sling.scripting.core.impl.jsr223.SortableScriptEngineFactory.getScriptEngine(SortableScriptEngineFactory.java:120) [org.apache.sling.scripting.core:2.3.5.SNAPSHOT]
> at org.apache.sling.scripting.core.impl.ScriptCacheImpl.handleEvent(ScriptCacheImpl.java:283) [org.apache.sling.scripting.core:2.3.5.SNAPSHOT]
> at org.apache.felix.eventadmin.impl.handler.EventHandlerProxy.sendEvent(EventHandlerProxy.java:415)
> at org.apache.felix.eventadmin.impl.tasks.HandlerTask.runWithoutBlacklistTiming(HandlerTask.java:82) [org.apache.felix.eventadmin:1.5.0]
> at org.apache.felix.eventadmin.impl.tasks.SyncDeliverTasks.execute(SyncDeliverTasks.java:104) [org.apache.felix.eventadmin:1.5.0]
> at org.apache.felix.eventadmin.impl.tasks.AsyncDeliverTasks$TaskExecuter.run(AsyncDeliverTasks.java:166) [org.apache.felix.eventadmin:1.5.0]
> at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
> at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
> at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
> at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
> at java.base/java.lang.Thread.run(Thread.java:834)
> 03.10.2020 13:20:29.246 *WARN* [EventAdminAsyncThread #6] org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory addHostObjects: Cannot prepare host object class org.apache.sling.scripting.javascript.wrapper.ScriptableMap
> java.lang.NullPointerException: null
> at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.addHostObjects(RhinoJavaScriptEngineFactory.java:342) [org.apache.sling.scripting.javascript:3.1.3.20201003201741112]
> at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.getRootScope(RhinoJavaScriptEngineFactory.java:195) [org.apache.sling.scripting.javascript:3.1.3.20201003201741112]
> at org.apache.sling.scripting.javascript.internal.RhinoJavaScriptEngineFactory.getScriptEngine(RhinoJavaScriptEngineFactory.java:142) [org.apache.sling.scripting.javascript:3.1.3.20201003201741112]
> at org.apache.sling.scripting.core.impl.jsr223.SortableScriptEngineFactory.getScriptEngine(SortableScriptEngineFactory.java:120) [org.apache.sling.scripting.core:2.3.5.SNAPSHOT]
> at org.apache.sling.scripting.core.impl.ScriptCacheImpl.handleEvent(ScriptCacheImpl.java:283) [org.apache.sling.scripting.core:2.3.5.SNAPSHOT]
> at org.apache.felix.eventadmin.impl.handler.EventHandlerProxy.sendEvent(EventHandlerProxy.java:415)
> at org.apache.felix.eventadmin.impl.tasks.HandlerTask.runWithoutBlacklistTiming(HandlerTask.java:82) [org.apache.felix.eventadmin:1.5.0]
> at org.apache.felix.eventadmin.impl.tasks.SyncDeliverTasks.execute(SyncDeliverTasks.java:104) [org.apache.felix.eventadmin:1.5.0]
> at org.apache.felix.eventadmin.impl.tasks.AsyncDeliverTasks$TaskExecuter.run(AsyncDeliverTasks.java:166) [org.apache.felix.eventadmin:1.5.0]
> at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
> at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
> at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
> at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
> at java.base/java.lang.Thread.run(Thread.java:834) {noformat}
> Expected:
> RhinoJavaScriptEngineFactory#getScriptEngine should log a warning and return null if the component is no longer active. The series of NPEs should not happen and get logged.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)