Details
-
Bug
-
Status: Closed
-
Minor
-
Resolution: Fixed
-
2.2.8
-
None
-
None
-
WebSphere Liberty Server 8.5.5.8, MyFaces 2.2
Description
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 any FlowScoped beans for the 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.
The output from MyFaces 2.2.8 on WebSphere Liberty demonstrates the issue:
[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
I tested on WildFly with Mojarra and it is behaving according to the specification:
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