Announcement Announcement Module
No announcement yet.
Why flowExecutionKey is stored in PortletSession? Page Title Module
Move Remove Collapse
Conversation Detail Module
  • Filter
  • Time
  • Show
Clear All
new posts

  • Why flowExecutionKey is stored in PortletSession?

    I am developing portlet using Spring 3.2.2 and Web Flow 2.3.2. Portlet is deployed under Liferay 6.1.0. Problem occures when a page containing this portlet is displayed in two (or more) browser tabs. When I start one flow in first tab (only first view state is displayed, no transition occurs yet) and I open another tab with the same page flow started in first tab is continued. It is not something I expect (new flow should start now). I figured out that flowExecutionKey is stored in PortletSession and it stays there until the first action request. This logic is implemented in DefaultFlowUrlHandler. When flow starts flowExecutionKey is stored in session, later DefaultFlowUrlHandler.getFlowExecutionKey method checks PortletRequest in order to find flowExecutionKey and when it's not in the request it checks PortletSession.

    Can anyone explain me why such logic is implemented? Why the flowExecutionKey is stored in session?

    I extended DefaultFlowUrlHandler and I removed this session store logic and portlet works now as I expected. Nothing blew up but maybe I overlooked something and it will not work 100% fine?