[ https://issues.apache.org/struts/browse/SHALE-450?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_41270 ]
Nick Gomm commented on SHALE-450: --------------------------------- Hi Gary I'm using myfaces 1.1.5 with tomahawk components. The code I changed to make it work for me is in the ClayViewHandler.renderView I just commented out the check on whether it is saving in the client //if (stateManager.isSavingStateInClient(context)) { int curPos = 0; // current position int fndPos = 0; //start of a marker int frmMkrIdx = indexOfFormMarker(); //might be multiple forms in the document do { fndPos = buff.indexOf(FORM_MARKERS[frmMkrIdx], curPos); if (fndPos > -1) { responsewriter.write(buff.substring(curPos, fndPos)); stateManager.writeState(context, serializedview); curPos = fndPos + FORM_MARKERS[frmMkrIdx].length(); } else { responsewriter.write(buff.substring(curPos)); } } while(curPos < buff.length() && fndPos > -1); //} else { //using server side state no need to look for form markers // responsewriter.write(buff.toString()); //} > Server Side state saving is not saving the sequence generated to the client, > leading to errors when always restoring the latest state. > -------------------------------------------------------------------------------------------------------------------------------------- > > Key: SHALE-450 > URL: https://issues.apache.org/struts/browse/SHALE-450 > Project: Shale > Issue Type: Bug > Components: Clay > Affects Versions: 1.0.4, 1.1.0-SNAPSHOT > Environment: Tomcat 5 on Windows XP > Reporter: Nick Gomm > > org.apache.shale.clay.faces.ClayViewHanlder.renderView is only checking for > client side state saving to replace the state saving markers with the > serialized state. If you are using server side state saving then nothing is > written. > I have built a test version which always replaces the state saving markers > with the state, as on mine it ends up calling > org.apache.myfaces.renderkit.html.HtmlResponseStateManager.writeState which > takes into account whether you are using server or client side state saving. > If server side is in use then the sequence and viewid are written so this can > be restored from the map of states saved on the session. > Problems were occuring if you spawed a new window and then went back to the > original window. When you actioned something on the original window, the > latest state was restored (which was the new window) and thus errors could > occur. Also, using the back button totally messed up the state. By saving > the sequence to the page, when resubmitted the appropriate state can be > looked up ( assuming it is in the last 20). -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.