By contract, a servlet container creates one instance of each servlet and then a dedicated thread is attached to each new incoming HTTP request to process the request. So all threads share the servlet instances and by extension their instance fields. To prevent any misunderstanding and unexpected behavior at runtime, all servlet fields should then be either ``++static++`` and/or ``++final++``, or simply removed.
With Struts 1.X, the same constraint exists on ``++org.apache.struts.action.Action++``.