code: protected void handleDoomedThreads() {
  
          try {
              Iterator<CmsUUID> i = m_threads.keySet().iterator();
              Set<CmsUUID> doomed = new HashSet<CmsUUID>();
              // first collect all doomed Threads
              while (i.hasNext()) {
                  CmsUUID key = i.next();
                  A_CmsReportThread thread = m_threads.get(key);
                  if (thread.isDoomed()) {
                      doomed.add(key);
                      if (LOG.isDebugEnabled()) {
                          LOG.debug(
                              Messages.get().getBundle().key(
                                  Messages.LOG_THREADSTORE_DOOMED_2,
                                  thread.getName(),
                                  thread.getUUID()));
                      }
                  }
              }
              i = doomed.iterator();
              // no remove all doomed Threads from the Thread store
              while (i.hasNext()) {
                  m_threads.remove(i.next());
              }
              if (LOG.isDebugEnabled()) {
                  dumpThreads();
              }
          } catch (Throwable t) {
              // the Grim Reaper must not be stopped by any error
              LOG.error(Messages.get().getBundle().key(Messages.LOG_THREADSTORE_CHECK_THREADS_ERROR_0), t);
          }
      }
docs: Handles doomed threads.<p>