[ 
https://issues.apache.org/jira/browse/TRINIDAD-2121?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Prakash Udupa updated TRINIDAD-2121:
------------------------------------

    Status: Patch Available  (was: Open)

> ChangeManager optimization - Apply ChangeManager customizations only during 
> render response
> -------------------------------------------------------------------------------------------
>
>                 Key: TRINIDAD-2121
>                 URL: https://issues.apache.org/jira/browse/TRINIDAD-2121
>             Project: MyFaces Trinidad
>          Issue Type: Improvement
>          Components: Facelets
>    Affects Versions: 2.0.1
>            Reporter: Prakash Udupa
>         Attachments: JIRA2121_Patch_over_trunk.patch
>
>   Original Estimate: 2h
>  Remaining Estimate: 2h
>
> Here is the hook-point currently for applying the changes that the 
> SessionChangeManager is holding on to:
> org.apache.myfaces.trinidadinternal.application.ViewDeclarationLanguageFactoryImpl.$ChangeApplyingVDLWrapper
> ...
>     @Override
>     public void buildView(FacesContext facesContext, UIViewRoot uiViewRoot)
>       throws IOException
>     {
>       _wrapped.buildView(facesContext, uiViewRoot);
>       ChangeManager cm = 
> RequestContext.getCurrentInstance().getChangeManager();
>       
> cm.applyComponentChangesForCurrentView(FacesContext.getCurrentInstance());
>     }
> When the view root cache is turned on 
> (org.apache.myfaces.trinidad.CACHE_VIEW_ROOT), which is a typical 
> configuration when partial state saving is enabled, the above code ends up 
> applying the customizations stored in the ChangeManager twice for the case of 
> POST requests. The suggested improvement is to just apply this only during 
> the RENDER_RESPONSE phase, which will optimally cover the new page request 
> case and the postback case. Not only is this optimal, but also robust, 
> because this ensures that the state is all restored, and the customizations 
> can be safely applied just before rendering response.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to