in src/main/java/org/apache/sling/servlets/resolver/internal/resource/MergingServletResourceProvider.java [59:84]
synchronized boolean remove(ServletResourceProvider provider) {
boolean found = false;
for (Iterator<Map.Entry<ServletResourceProvider, ServiceReference<?>>> regIter = registrations.iterator();
regIter.hasNext(); ) {
Map.Entry<ServletResourceProvider, ServiceReference<?>> reg = regIter.next();
if (reg.getKey() == provider) {
regIter.remove();
found = true;
} else {
Bundle bundle = reg.getValue().getBundle();
if (bundle == null || bundle.getState() == Bundle.STOPPING) {
regIter.remove();
found = true;
}
}
}
if (found) {
ConcurrentHashMap<String, Set<String>> localTree = new ConcurrentHashMap<>();
ConcurrentHashMap<String, Map.Entry<ServletResourceProvider, ServiceReference<?>>> localProvs =
new ConcurrentHashMap<>();
index(localTree, localProvs, registrations);
tree.set(localTree);
providers.set(localProvs);
}
return found;
}