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

Reply via email to