Description
In a JSF environment currently if an exception occurs restoring a flow execution (because it has ended or expired) there is no "out-of-the-box" support provided for handling that exception and taking some sort of error action. After a flow execution has been successfully restored, no problem, you can use Spring Web Flow to handle exceptional situations as part of your navigation rules. It is the process of restoring the execution given an execution key that there is no "out-of-the-box" support for.
So currently if a flow execution restoration exception occurs it goes uncaught and trickles all the way up the call-stack. You can see this in the sellitem-jsf sample by completing an order then going back to resubmit your order. The exception is thrown inside the restoreState method of the FlowExecutionKeyStateHolder component.
Questions to answer are:
- How are exceptions typically handled in a JSF environment?
- Is it appropriate for an component to throw an exception? Or should it set a flag and the PhaseListener should execute some default exception handling logic based on that flag?