private ScriptEngineManager getScriptEngineManager()

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;
    }