Runnable registerContext()

in src/main/java/org/apache/sling/engine/impl/helper/SlingServletContext.java [250:271]


    Runnable registerContext(final ServletContext delegatee, final long counter) {
        return () -> {
            final boolean register;
            synchronized (SlingServletContext.this) {
                register = SlingServletContext.this.servletContext == delegatee;
            }
            if (register) {
                final ServiceRegistration<ServletContext> reg = registerServletContext();
                boolean immediatelyUnregister = false;
                synchronized (SlingServletContext.this) {
                    if (SlingServletContext.this.initCounter == counter) {
                        SlingServletContext.this.registration = reg;
                    } else {
                        immediatelyUnregister = true;
                    }
                }
                if (immediatelyUnregister) {
                    unregisterServletContext(reg);
                }
            }
        };
    }