in src/main/java/org/apache/sling/servlets/resolver/internal/resource/ServletMounter.java [349:375]
private void destroyServlet(final ServiceReference<Servlet> reference) {
ServletReg registration;
synchronized (this.servletsByReference) {
registration = servletsByReference.remove(reference);
}
if (registration != null) {
for (final ServiceRegistration<ResourceProvider<Object>> reg : registration.registrations) {
try {
reg.unregister();
} catch (final IllegalStateException ise) {
// this might happen on shutdown
}
}
if (registration.provider != null && provider != null && provider.remove(registration.provider)) {
resolutionCaches.values().forEach(ResolutionCache::flushCache);
}
final String name = RequestUtil.getServletName(registration.servlet);
logger.debug("unbindServlet: Servlet {} removed", name);
try {
registration.servlet.destroy();
} catch (Throwable t) { // NOSONAR
logger.error("unbindServlet: Unexpected problem destroying servlet " + name, t);
}
}
}