Class ThreadContext

java.lang.Object
org.exoplatform.container.component.ThreadContext

public class ThreadContext extends Object

This component contains all the variables of type ThreadLocal hold by a ThreadContextHolder This component has not been designed to be thread safe so ensure that you create a new instance each time you use it. Moreover for security reason, when the SecurityManager is installed we check the RuntimePermission manageThreadLocal only within the constructor of a ThreadContext.

  • Constructor Details

    • ThreadContext

      public ThreadContext(ThreadLocal<?>... threadLocals)
      Default constructor
      Parameters:
      threadLocals - the thread local variables whose value must be transfered from one thread to another to avoid critical issues.
      Throws:
      SecurityException - In case the security manager is installed and the calling stack doesn't have the RuntimePermission manageThreadLocal
  • Method Details

    • merge

      public static ThreadContext merge(List<ThreadContext> contexts)
      Merges all the provided ThreadContext into one
      Parameters:
      contexts - the ThreadContext to merge
      Returns:
      a ThreadContext representing all the provided ThreadContext instance
    • store

      public void store()
      Stores into memory the current values of all the Thread Local variables
    • push

      public void push()
      Pushes values stored into memory into all the Thread Local variables and keeps previous values to be able to restore old state
    • restore

      public void restore()
      Restores the old values of all the Thread Local variables