code: protected void checkPublishQueue() {
  
          // check the publish manager if the current thread is still active
          try {
              CmsPublishManager publishManager = OpenCms.getPublishManager();
              if (publishManager == null) {
                  // this can happen during shutdown
                  return;
              }
              // get the current publish job
              CmsPublishJobRunning publishJob = publishManager.getCurrentPublishJob();
              if (publishJob == null) {
                  // try to start next job
                  publishManager.checkCurrentPublishJobThread();
                  return;
              }
              // get the thread id of the current publish job
              CmsUUID uid = publishJob.getThreadUUID();
              if ((uid == null) || (uid.isNullUUID())) {
                  return;
              }
              // find the thread
              A_CmsReportThread thread = m_threads.get(uid);
              if (thread == null) {
                  return;
              }
              // check if the report still has output and so is active
              if ((System.currentTimeMillis() - thread.getLastEntryTime()) > (UPDATE_MINUTES_INTERVAL
                  * ONE_MINUTE_IN_MILLIS)) {
                  // remove it
                  m_threads.remove(thread);
                  // abandon thread
                  publishManager.abandonThread();
              }
          } catch (Throwable t) {
              LOG.error(Messages.get().getBundle().key(Messages.LOG_THREADSTORE_CHECK_PUBLISH_THREAD_ERROR_0), t);
          }
      }
docs: Checks the publish queue for abandoned publish jobs.<p>