[
https://issues.apache.org/jira/browse/MYFACES-4047?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Leonardo Uribe resolved MYFACES-4047.
-------------------------------------
Resolution: Fixed
Assignee: Leonardo Uribe
Fix Version/s: 2.2.11
> @PreDestroy method not invokved on javax.faces.bean.ViewScoped beans on
> Session invalidation
> --------------------------------------------------------------------------------------------
>
> Key: MYFACES-4047
> URL: https://issues.apache.org/jira/browse/MYFACES-4047
> Project: MyFaces Core
> Issue Type: Bug
> Components: JSR-344
> Affects Versions: 2.2.10
> Reporter: Paul Nicolucci
> Assignee: Leonardo Uribe
> Priority: Minor
> Fix For: 2.2.11
>
> Attachments: MYFACES-4047-2-UNTESTED-ONLY-DEFAULT-VIEWSCOPE.patch,
> myfaces-4047-with-cdi.patch, myfaces-4047.patch, myfaces-4047.patch
>
>
> Consider the following scenario:
> Bean1:
> @Named
> @ViewScoped (javax.faces.view.ViewScoped)
> Bean2:
> @ManagedBean
> @ViewScoped (javax.faces.bean.ViewScoped)
> When the session is invalidated the
> org.apache.myfaces.cdi.impl.CDIManagedBeanHandlerImpl.onSessionDestroyed()
> method is invoked. Here, MyFaces destroys all of the
> javax.faces.view.ViewScoped @Named beans and @PreDestroy is invoked on these
> beans. However, the @ManagedBean /ViewScoped bean does not have its
> @PreDestroy invoked.
> I believe this is because the assumption was made that if an Application is
> CDI enabled it will contain all CDI @Named beans and not any @ManagedBeans.
> There is also the DefaultViewScopeHandler which is not yet implemented for
> "onSessionDestroyed" that would be used in the case when CDI is not enabled,
> that is when only @ManagedBeans are contained in the application.
> I believe it is possible to update the CDIManagedBeanHandlerImpl to be aware
> of the ViewScoped ManagedBeans and destroy them onSessionDestroy first by
> just getting the viewMap and iterating over the entries as we do when the
> PreDestroyViewMapEvent is processed.
> I'd like to use this issue to resolve the problem in
> CDIManagedBeanHandlerImpl as well as implement onSessionDestroy in
> DefaultViewScopeHandler.java
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)