public void contextInitialized()

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


    public void contextInitialized(final ServletContextEvent sce) {
        final ServletContext delegatee;
        final long counter;
        synchronized ( this ) {
            this.servletContext = sce.getServletContext();
            this.setServerInfo();
            delegatee = this.servletContext;
            this.initCounter++;
            counter = this.initCounter;
        }
        if ( delegatee != null ) {
            // async registration
            this.runAsync(() -> {
                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);
                    }
                }
            }, "registration");
        }
    }