Maciej, Thanks for the insight. Below is how I am loading the controller.
Bean is created in the Spring context:
<bean name="executionController" class="com.test.ExecutionController" init-method="create" />
then I get the bean from the Spring context in each thread using:
(ExecutionController) context.getBean("executionController");
May be I should create a new controller for each thread? I will try this an see if that works.