+1 to fix this anomaly. Can't believe someone who preaches standards says "its my implementation".
+1 to change this (if possible without turning the everything upside down).
And I don't say that because I think Bill did a bad job with his implementation. I am sure that from that point of view it is a very nice solution.
But my point of view is just the one of an AS user and not of an AS implementor.
And from experience I can tell that this behavior is kinda counterintuitive and gave me a hard time before I figured out what was going on and why it was not doing what I was expecting.
This behavior has changed with the implementation of a new ThreadlocalPool. Now the pool completely cleans up at undeploy and calls @PreDestroy on all session bean instances.
See http://jira.jboss.com/jira/browse/EJBTHREE-1031
thanks. will check out 4.2.2 :)