in src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/ScriptUseProvider.java [168:185]
private ScriptEngineManager getScriptEngineManager() {
ScriptEngineManager result = engineManagerRef.get();
if (result == null) {
ServiceReference<ScriptEngineManager> ref = bundleContext.getServiceReference(ScriptEngineManager.class);
if (ref != null) {
ScriptEngineManager mgr = bundleContext.getService(ref);
if (mgr != null && engineManagerRef.compareAndSet(null, mgr)) {
this.scriptEngineManagerServiceReference = ref;
return mgr;
} else if (mgr != null) {
// Already initialized by another thread; unget this one
bundleContext.ungetService(ref);
}
}
return null;
}
return result;
}