myfaces-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Adam Winer (JIRA)" <...@myfaces.apache.org>
Subject [jira] Commented: (TOMAHAWK-253) Dummy form code must call StateManager.saveSerializedView() for server-side state saving
Date Thu, 13 Apr 2006 17:54:00 GMT
    [ http://issues.apache.org/jira/browse/TOMAHAWK-253?page=comments#action_12374383 ] 

Adam Winer commented on TOMAHAWK-253:
-------------------------------------

As with my last issue, no true patch, but a one-line fix provided in the bug text.

> 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


Mime
View raw message