Announcement Announcement Module
Collapse
No announcement yet.
Problems with SWF 1.0.5 and Safari/531.21.10 Page Title Module
Move Remove Collapse
X
Conversation Detail Module
Collapse
  • Filter
  • Time
  • Show
Clear All
new posts

  • Problems with SWF 1.0.5 and Safari/531.21.10

    Hi,

    Getting an error in logs where SWF is confused about the state it should be in.

    Have seen the error a few times now and each time it appears to be a different user but a common factor is that I've only seen it with:

    "... AppleWebKit/531.21.8 (KHTML, like Gecko) Version/4.0.4 Safari/531.21.10"

    and only the Mac version of that (which I don't have access to). Couldn't recreate with the Windows version or with Firefox.

    Problem is this:

    User transitions from a view state (A) to a decision state (B) and from there to a view state (C).

    This must be working as they get redirected to the view associated with C.

    They then submit the form in that view C but SWF acts on the form submission as if they were in state A.

    org.springframework.webflow.engine.NoMatchingTrans itionException: No transition found on occurence of event 'submit' in state 'A' of flow 'my-flow' -- valid transitional criteria are array<TransitionCriteria>[[eventId = 'submitOne'], [eventId = 'submitTwo']] -- likely programmer error, check the set of TransitionCriteria for this state

    Indeed, the form on the view associated with state C uses the eventId 'submit' while the view associated with state A has two forms on it each with a different eventId.

    Any ideas on what could be causing this?

    Thanks,
    Derek

  • #2
    Hi,

    This problem continues. It is still exclusive to Safari. In addition to the version mentioned before there has now also been one incidence with a slightly earlier version of Safari on Windows.

    We have tried to recreate the error ourselves using those versions of Safari on both Mac and Windows without success.

    I upped the log level for the webflow packages to DEBUG which has thrown some light on what is going on.

    User goes through flow, being assigned a _flowExecutionKey (say _cABC for simplicity) and reaches an end-state. They start flow again and get a new _flowExecutionKey (say _cDEF). In the case I have been tracing the user went through the flow several times.

    Having entered the flow afresh the user was in view state A so should have had form A rendered in their browser. However, the next request received was a submission from a view associated with state C.

    I suppose this could happen if they multiple tabs/windows open and that this was left over from a previous execution of the flow. However, the request came with two _flowExecutionKey parameter values:

    2010-01-13 20:26:25,759 [http-11100-Processor19] DEBUG org.springframework.webflow.executor.support.FlowR equestHandler - Request initiated by [ServletExternalContext@4e0124 requestParameterMap = map['_flowExecutionKey' -> array<String>['_cDEF', '_cABC'], 'emailAddress' -> '[email protected]', '_eventId_submit' -> 'Submit']]

    Including the current key and a previous key.

    How could that happen?

    It seems to exclude the possibility of the submission coming from a form in another tab/window left over from a previous execution.

    I'm including _flowExecutionKey in the forms as a hidden input field. The forms include a relative action URL that doesn't include any query params. I don't see webflow using any custom cookies.

    Any one got any idea what is going on here?

    Why might Safari be sending two different flowExecutionKeys?

    Cheers,
    Derek

    Comment

    Working...
    X