org.apache.shiro.util
Interface ThreadState

All Known Implementing Classes:
SubjectThreadState

public interface ThreadState

A ThreadState instance manages any state that might need to be bound and/or restored during a thread's execution.

Usage

Calling bind() will place state on the currently executing thread to be accessed later during the thread's execution.

WARNING

After the thread is finished executing, or if an exception occurs, any previous state MUST be restored to guarantee all threads stay clean in any thread-pooled environment. This should always be done in a try/finally block:
 ThreadState state = //acquire or instantiate as necessary
 try {
     state.bind();
     doSomething(); //execute any logic downstream logic that might need to access the state
 } finally {
     state.restore();
 }
 

Since:
1.0

Method Summary
 void bind()
          Binds any state that should be made accessible during a thread's execution.
 void clear()
          Completely clears/removes the ThreadContext state.
 void restore()
          Restores a thread to its state before bind bind was invoked.
 

Method Detail

bind

void bind()
Binds any state that should be made accessible during a thread's execution. This should typically always be called in a try/finally block paired with the restore() call to guarantee that the thread is cleanly restored back to its original state. For example:
 ThreadState state = //acquire or instantiate as necessary
 try {
     state.bind();
     doSomething(); //execute any logic downstream logic that might need to access the state
 }  finally {
     state.restore();
 }
 


restore

void restore()
Restores a thread to its state before bind bind was invoked. This should typically always be called in a finally block to guarantee that the thread is cleanly restored back to its original state before bind's bind was called. For example:
 ThreadState state = //acquire or instantiate as necessary
 try {
     state.bind();
     doSomething(); //execute any logic downstream logic that might need to access the state
 } finally {
     state.restore();
 }
 


clear

void clear()
Completely clears/removes the ThreadContext state. Typically this method should only be called in special cases - it is more 'correct' to restore a thread to its previous state than to clear it entirely.



Copyright © 2004-2012 The Apache Software Foundation. All Rights Reserved.