code: public synchronized void shutDown() {
  
          int count = 0;
          // if the handler is still running, we must wait up to 30 seconds until it is finished
          while ((count < HANDLER_FINISH_TIME) && m_handler.isBusy()) {
              count++;
              try {
                  if (CmsLog.INIT.isInfoEnabled()) {
                      CmsLog.INIT.info(
                          Messages.get().getBundle().key(
                              Messages.INIT_STATIC_EXPORT_SHUTDOWN_3,
                              m_handler.getClass().getName(),
                              String.valueOf(count),
                              String.valueOf(HANDLER_FINISH_TIME)));
                  }
                  wait(1000);
              } catch (InterruptedException e) {
                  // if interrupted we ignore the handler, this will produce some log messages but should be ok
                  count = HANDLER_FINISH_TIME;
              }
          }
  
          if (CmsLog.INIT.isInfoEnabled()) {
              CmsLog.INIT.info(Messages.get().getBundle().key(Messages.INIT_SHUTDOWN_1, this.getClass().getName()));
          }
  
      }
docs: Shuts down all this static export manager.<p>
  
  This is required since there may still be a thread running when the system is being shut down.<p>