We have a class, Foo, which is a singleton and inherits from Thread. We were having some issues after redeploy where it seemed like 2 of these threads might be running. I added some print statements to retrieve the ClassLoader every time Foo woke up from sleep. The prints indicate that in fact another instance of the class has been created with a different ClassLoader.
I don't know if it is relevant, but Foo always gets created via Foo::instance for the first time via a Session Bean. Foo is meant to run as a service to take care of DB sanitization.
Thanks