docs: @Override
    public void onStartup(Set<Class<?>> set, ServletContext servletContext) throws ServletException {
      final ClassLoaderLeakPreventorListener classLoaderLeakPreventorListener = new ClassLoaderLeakPreventorListener();
      try {
        classLoaderLeakPreventorListener.contextInitialized(servletContext); // Initialize immediately
  
        servletContext.addListener(new ServletContextListener() {
          @Override
          public void contextInitialized(ServletContextEvent servletContextEvent) {
            // Do nothing, already done above
          }
  
          @Override
          public void contextDestroyed(ServletContextEvent servletContextEvent) {
            classLoaderLeakPreventorListener.contextDestroyed(servletContextEvent);
          }
        });
      }
      catch (Throwable t) { // (Shouldn't really be needed)
        t.printStackTrace(System.err);
      }
  
      for(ServletContextListener otherListener : ClassLoaderLeakPreventorListener.getDefaultOtherListeners()) {
        servletContext.addListener(otherListener);
      }
    }