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