[ 
https://issues.apache.org/jira/browse/DELTASPIKE-385?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13696355#comment-13696355
 ] 

Daniel Zwicker commented on DELTASPIKE-385:
-------------------------------------------

I was in trouble with this one, too. So i have written a small utility-class 
bring a workaround in place. You can find it on as gist 
https://gist.github.com/dzwicker/5895476
                
> 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
>            Assignee: Mark Struberg
>
> 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