Richard DiCroce created DELTASPIKE-385:
------------------------------------------

             Summary: Spurious BeanManagerProvider warnings when used in EAR
                 Key: DELTASPIKE-385
                 URL: https://issues.apache.org/jira/browse/DELTASPIKE-385
             Project: DeltaSpike
          Issue Type: Bug
          Components: Core
    Affects Versions: 0.4
         Environment: JBoss AS 7.2.0.Final (EAP 6.1.0.Alpha1)
            Reporter: Richard DiCroce


BeanManagerProvider spams the log with this warning, long after the container 
has been started:
"When using the BeanManager to retrieve Beans before the Container is started, 
non-portable behaviour results!"

The problem appears to be caused by having deltaspike-core-api in the EAR /lib 
directory and using BeanManagerProvider from inside a WAR module. The warning 
gets printed when the booted flag for the appropriate BeanManagerInfo is false, 
and BeanManagerInfo instances initialize it to false when they are created. The 
only place the booted flag gets changed to true is in 
cleanupFinalBeanManagers(), which iterates over all the BeanManagerInfo 
instances that exist at the time it is called.

In my case, the only BeanManagerInfo that exists when 
cleanupFinalBeanManagers() is called is the one that was created when the 
setBeanManager() observer method was called by the container. But the 
classloader in use when setBeanManager() was called was the classloader for the 
entire EAR. Because I don't attempt to use BeanManagerProvider until after 
cleanupFinalBeanManagers() is called, this means that the BeanManagerInfo for 
the WAR classloader is created with the booted flag set to false (which is 
incorrect) and the flag is never changed to true.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to