This forum is now a read-only archive. All commenting, posting, registration services have been turned off. Those needing community support and/or wanting to ask questions should refer to the Tag/Forum map, and to http://spring.io/questions for a curated list of stackoverflow tags that Pivotal engineers, and the community, monitor.
Yes this is a limitation of the default TransactionSynchronizer implementation, as it manages the token in local flowScope. You'll likely need a custom implementation to manage the token somewhere else, like in a database... we want to provide more out of the box help impls ourselves, so any jumpstart here if you're on a short timeline would be much appreciated.
A bit more info on what you need to do to plug in a custom transaction manager:
1. First you need to implement your custom transaction manager by implementing the interface org.springframework.web.flow.execution.Transaction Synchronizer. I.e. your implementation could store the transaction token in a database.
2. Next, register your custom transaction manager with the flow execution manager of your flow controller. Something like this:
After providing a custom TransactionSynchronizer which uses a different storage mechanism for storing the token, the token is still null in subflow states. However, completing the subflow, by reaching an end state, returns to the main flow and allows normal execution. If in the subflow and the browser back button is pressed, returning to a view state of the main flow, results in any further action to throw the following exception: