You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by "Leonardo Uribe (JIRA)" <de...@myfaces.apache.org> on 2014/11/12 18:35:33 UTC

[jira] [Commented] (MYFACES-3940) FlowScopeBeanHolder calls ApplicationContextBean on PreDestroy

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

Leonardo Uribe commented on MYFACES-3940:
-----------------------------------------

It looks like an issue related to CDI, not to MyFaces, or at least I don't see a way to fix it from MyFaces side. If @PreDestroy is called, it is supposed that the context is still valid, and that context is controlled by CDI, not by MyFaces. The problem here is without servletContext you can't destroy the beans.

> FlowScopeBeanHolder calls ApplicationContextBean on PreDestroy
> --------------------------------------------------------------
>
>                 Key: MYFACES-3940
>                 URL: https://issues.apache.org/jira/browse/MYFACES-3940
>             Project: MyFaces Core
>          Issue Type: Bug
>          Components: JSR-344
>    Affects Versions: 2.2.5
>         Environment: WebSphere 8.5.5.3
>            Reporter: Sami Korhonen
>
> Session scoped cdi bean FlowScopeBeanHolder relies on existance of ApplicationContextBean. However, when application is shutdown there is no guarantee that application scoped bean is destroyed after session scoped bean. Because ApplicationContextBean no longer exists, application server to throws an exception:
> [10.11.2014 10:06:50:511 EET] 00000072 ManagedBean   E ManagedBean error An error occurred while executing [@PreDestroy.]
>                                  javax.enterprise.context.ContextNotActiveException: WebBeans context with scope type annotation @ApplicationScoped does not exist within current thread
> 	at org.apache.webbeans.container.BeanManagerImpl.getContext(BeanManagerImpl.java:323)
> 	at org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.getContextualInstance(NormalScopedBeanInterceptorHandler.java:124)
> 	at org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.invoke(NormalScopedBeanInterceptorHandler.java:95)
> 	at org.apache.myfaces.cdi.view.ApplicationContextBean_$$_javassist_28.getServletContext(ApplicationContextBean_$$_javassist_28.java)
> 	at org.apache.myfaces.flow.cdi.FlowScopeBeanHolder.destroyBeansOnPreDestroy(FlowScopeBeanHolder.java:210)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)