Class CmsThreadStore

  • All Implemented Interfaces:
    java.lang.Runnable

    public final class CmsThreadStore
    extends java.lang.Thread
    The OpenCms "Grim Reaper" thread store were all system Threads are maintained.

    This thread executes all 60 seconds and checks if report threads are still active. A report thread usually waits for a user to get the contents written to the report. However, if the user does not request the reports content (e.g. because the browser was closed), then the report thread becomes abandoned. This Grim Reaper will collect all such abandoned report threads and remove them after further 60 seconds.

    Moreover, the Grim Reaper checks for all invalid user sessions that have times out for 5 or more minutes, and removes them as well.

    Since:
    6.0.0
    • Nested Class Summary

      • Nested classes/interfaces inherited from class java.lang.Thread

        java.lang.Thread.State, java.lang.Thread.UncaughtExceptionHandler
    • Field Summary

      • Fields inherited from class java.lang.Thread

        MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addThread​(A_CmsReportThread thread)
      Adds a Thread to this Thread store.
      protected void checkPublishQueue()
      Checks the publish queue for abandoned publish jobs.
      protected void handleDoomedThreads()
      Handles doomed threads.
      protected void persistData()
      Takes care of the persistence of data normally held in memory.
      A_CmsReportThread retrieveThread​(CmsUUID key)
      Retrieves a Thread from this Thread store.
      void run()  
      protected void shutDown()
      Shut down this thread store.
      protected void validateSessions()
      Checks for invalid sessions.
      • Methods inherited from class java.lang.Thread

        activeCount, checkAccess, clone, countStackFrames, currentThread, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, onSpinWait, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, suspend, toString, yield
      • Methods inherited from class java.lang.Object

        equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • CmsThreadStore

        protected CmsThreadStore​(CmsSecurityManager securityManager)
        Hides the public constructor.

        Parameters:
        securityManager - needed for scheduling "undercover-jobs" that increase stability and fault tolerance
    • Method Detail

      • addThread

        public void addThread​(A_CmsReportThread thread)
        Adds a Thread to this Thread store.

        Parameters:
        thread - the Thread to add
      • retrieveThread

        public A_CmsReportThread retrieveThread​(CmsUUID key)
        Retrieves a Thread from this Thread store.

        Parameters:
        key - the key of the Thread to retrieve
        Returns:
        the Thread form this Thread store that matches the given key
      • run

        public void run()
        Specified by:
        run in interface java.lang.Runnable
        Overrides:
        run in class java.lang.Thread
        See Also:
        Runnable.run()
      • checkPublishQueue

        protected void checkPublishQueue()
        Checks the publish queue for abandoned publish jobs.

      • persistData

        protected void persistData()
        Takes care of the persistence of data normally held in memory.

      • shutDown

        protected void shutDown()
        Shut down this thread store.

      • validateSessions

        protected void validateSessions()
        Checks for invalid sessions.