I had an issue with @SessionScoped beans giving me an error during execution of @PreDestroy method.
In the server.log there were lines similar to this
[#|2012-03-01T09:16:14.799+0100|SEVERE|glassfish3.1.1|org.jboss.weld.Bean|_ThreadID=23;_ThreadName=Thread-2;|WELD-000019 Error destroying an instance Managed Bean [class test.SessionBeanProducer] with qualifiers [@Any @Default] of test.SessionBeanProducer@1c65470|#]
I investigated it a little bit and found thad when @PreDestroy method invoked @RequestScoped bean, the method org.glassfish.weld.ACLSingletonProvider.ACLSingleton#get raised IllegalStateException.
When this method was invoked TCCL was set to WebApp classloader but in the store only ear class loader was registered
The issue seems to be specific to EAR deployments. I created an arquillian test case demonstrating the issue.