Uploaded image for project: 'Spring Web Flow'
  1. Spring Web Flow
  2. SWF-289

Introduce support for handling flow execution restoration failures due to flow expiry or browser backtracking

    XMLWordPrintable

    Details

    • Type: Improvement
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 1.0.2
    • Fix Version/s: 2.0 M4
    • Component/s: JSF
    • Labels:
      None

      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?

      See http://forum.springframework.org/showthread.php?t=37182

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              jeremyg484 Jeremy Grelle
              Reporter:
              kdonald Keith Donald
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: