[ http://issues.apache.org/jira/browse/TOMAHAWK-253?page=all ]
Adam Winer updated TOMAHAWK-253: -------------------------------- Status: Patch Available (was: Open) > Dummy form code must call StateManager.saveSerializedView() for server-side > state saving > ---------------------------------------------------------------------------------------- > > Key: TOMAHAWK-253 > URL: http://issues.apache.org/jira/browse/TOMAHAWK-253 > Project: MyFaces Tomahawk > Type: Bug > Versions: 1.1.2-SNAPSHOT > Environment: Generic issue. > Reporter: Adam Winer > > The current dummy form code in DummyFormUtils has a block that reads: > if (stateManager.isSavingStateInClient(facesContext)) > { > //render state parameters > //TODO: Optimize saveSerializedView call, because serialized view > is built twice! > StateManager.SerializedView serializedView = > stateManager.saveSerializedView(facesContext); > stateManager.writeState(facesContext, serializedView); > } > else > { > writer.startElement(HTML.INPUT_ELEM, null); > > writer.writeAttribute(org.apache.myfaces.shared_tomahawk.renderkit.html.HTML.TYPE_ATTR, > org.apache.myfaces.shared_tomahawk.renderkit.html.HTML.INPUT_TYPE_HIDDEN, > null); > writer.writeAttribute(HTML.NAME_ATTR, > org.apache.myfaces.shared_tomahawk.renderkit.RendererUtils.SEQUENCE_PARAM, > null); > > writer.writeAttribute(org.apache.myfaces.shared_tomahawk.renderkit.html.HTML.VALUE_ATTR, > > org.apache.myfaces.shared_tomahawk.renderkit.RendererUtils.getViewSequence(facesContext), > null); > > writer.endElement(org.apache.myfaces.shared_tomahawk.renderkit.html.HTML.INPUT_ELEM); > } > Note that stateManager.saveSerializedView() is only called for client-side > state saving. > This means that the dummy form code never actually gets around to calling > stateManager.saveSerializedView(), so unless someone else has called this > method, the view never actually gets saved in the session. This is breaking > the latest release of Facelets (1.1.5), which has added optimizations that > avoid unnecessary calls to the StateManager. > Simple fix: haul > StateManager.SerializedView serializedView = > stateManager.saveSerializedView(facesContext); > ... out of the "if" block. > Ideally, this code should be refactored so that the server-side code is also > calling StateManager.writeState() too - it's a significant problem that > DummyFormUtils has hardcoded knowledge of how the StateManager works. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira