[ http://jira.jboss.com/jira/browse/RF-3542?page=all ]
Aleksej Yanul closed RF-3542. ----------------------------- > AjaxStateManager restores state after redirect (breaks JSF Spec) > ---------------------------------------------------------------- > > Key: RF-3542 > URL: http://jira.jboss.com/jira/browse/RF-3542 > Project: RichFaces > Issue Type: Bug > Affects Versions: 3.1.0, 3.1.5, 3.1.x > Environment: JSF 1.1 RI / Myfaces 1.1.5, Tomcat 5.5, server-side > state-saving > Reporter: Mathias Werlitz > Assigned To: Aleksej Yanul > Priority: Critical > Fix For: 3.1.6 > > Attachments: faces-config.xml, testCase.jsp > > > The implementation of AjaxStateManager changes the general behaviour of JSF > and breaks the JSF spec. If Richfaces 3.1.x is deployed with an JSF 1.1 > webapp a previous state of a view is (wrongly) restored after a redirect. If > Richfaces is not deployed with the same application a new fresh view is > created in this case. > I provided a small test case that does not use any Richfaces components. Set > up a very simple JSF webapp with the Sun RI or Myfaces - it doesn't matter. > Now the test case WITHOUT Richfaces: > 1. open testCase.jsf in your browser > 2. enter something different into the first input field > 3. click "validate" > You should see some error messages. > 4. now click "navigate" > Now the validation will be skipped and the simple navigation rule of the > faces-config will kick in: redirecting to the same page. You will see "test" > in the first input field. Everything worked fine. > Now the ERROR: Install Richfaces 3.1.x into the app and do the same as > described above. > After you clicked "navigate" you will see, that the first input field does > not read "test" - instead it still shows the input entered before navigating > to the page. > It seems that Richfaces always does restore an previous version of the > viewstate if a navigation rule that uses a redirect was used. This is wrong. > After a navigation with or without a redirect always a new fresh > view/viewsate should be created. > By the way: If you use Ajax4jsf 1.1.x or remove the "redirect" tag from the > navigation rule the test case works fine as the version without Richfaces. > I traced down the problem to AjaxStateManager line 292 (Richfaces 3.1.5). It > seems that if a viewstate was saved for a view than this viewstate will be > restored except there is a newer version or no state. Seems to be a fall-back > solution. If a redirect was used no newer version was saved, thus an > inappropriate old state will be restored although after a navigation a > completly new state should be created for the target view (JSF spec). -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira _______________________________________________ richfaces-issues mailing list [email protected] https://lists.jboss.org/mailman/listinfo/richfaces-issues
