@Override
  protected void fireUndeployEvent() {
    if (_servletContextListeners != null) {
      ServletContextEvent servletContextEvent = new ServletContextEvent(servletContext);

      for (ServletContextListener servletContextListener : _servletContextListeners) {

        try {
          servletContextListener.contextDestroyed(servletContextEvent);
        } catch (Throwable t) {
          String className = ClassUtil.getClassName(servletContextListener.getClass());

          _log.error(
              className
                  + " is unable to process a context "
                  + "destroyed event for "
                  + servletContext.getServletContextName(),
              t);
        }
      }
    }

    super.fireUndeployEvent();
  }