[ 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