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