Hank Ibell created MYFACES-4038:
-----------------------------------
Summary: Flow beans are destroyed before flow is finalized
Key: MYFACES-4038
URL: https://issues.apache.org/jira/browse/MYFACES-4038
Project: MyFaces Core
Issue Type: Bug
Affects Versions: 2.2.8
Environment: WebSphere Liberty Server 8.5.5.8, MyFaces 2.2
Reporter: Hank Ibell
Priority: Minor
According to section 7.4.2.3 'Requirements for Exiting a Flow' of the JSF 2.2
specification, a flow's finalizer (if any) should be called before deactivating
bean any FlowScoped beans for the flow.
{panel:bgColor=#e8e8e8|title=7.4.2.3 Requirements for Exiting a Flow}
If any of the preceding navigation steps cause a flow to be exited, the
implementation must perform the following steps, in this order, before
continuing with navigation.
- Call the finalizer for the flow, if any.
- De-activate any @FlowScoped beans for the current flow.
- If exiting via a return node ensure the return parameters are correctly
passed back to the caller.
{panel}
The output from MyFaces 2.2.8 on WebSphere Liberty demonstrates the issue:
{panel}
[3/16/16 0:14:34:698 EDT] 00000089 SystemOut O FacesFlowTest1: FlowBean
created
[3/16/16 0:14:34:699 EDT] 00000089 SystemOut O FacesFlowTest1: Flow
initialized
[3/16/16 0:14:39:439 EDT] 00000089 SystemOut O FacesFlowTest1: FlowBean
destroyed
[3/16/16 0:14:39:440 EDT] 00000089 SystemOut O FacesFlowTest1: Flow
finalized
{panel}
I tested on WildFly with Mojarra and it is behaving according to the
specification:
{panel}
00:12:40,543 INFO [stdout] (default task-6) FacesFlowTest1: FlowBean created
00:12:40,544 INFO [stdout] (default task-6) FacesFlowTest1: Flow initialized
00:12:44,954 INFO [stdout] (default task-8) FacesFlowTest1: Flow finalized
00:12:44,955 INFO [stdout] (default task-8) FacesFlowTest1: FlowBean destroyed
{panel}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)