[ https://issues.apache.org/jira/browse/MYFACES-3488?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13223376#comment-13223376 ]
Leonardo Uribe commented on MYFACES-3488: ----------------------------------------- The idea with that check lenght first is prevent an unnecessary cast. The number comparison is cheaper compared with the cast, so it is ok to let it as is. > [perf] store facelets MARK_CREATED and rendererType at UIComponentBase level > ---------------------------------------------------------------------------- > > Key: MYFACES-3488 > URL: https://issues.apache.org/jira/browse/MYFACES-3488 > Project: MyFaces Core > Issue Type: Improvement > Components: JSR-314 > Reporter: Leonardo Uribe > Assignee: Leonardo Uribe > Fix For: 2.0.13, 2.1.7 > > > Inspired on the suggestions done in MYFACES-3470 and MYFACES-3471, I have > found a solution for both cases. > MARK_CREATED and rendererType are special properties. Both are more related > to the real UIComponent instance, which means those properties does not > change for components inside a table (h:dataTable rowStatePreserved="true"). > In the case of MARK_CREATED, almost all components created by facelets uses > it, and this is assigned when the view is built. It has only sense to save > this value when the component needs to be restored fully, but since this is a > property that does not change once created, it does not have sense to store > it on the delta. > In the case of rendererType, the same as MARK_CREATED happens, but by the > spec, it could be valid to set a ValueExpression for it and it is feasible to > create a component, call markInitialState() and then call > setRendererType(...), so this value could be saved on the delta. > Components that are created without properties (for example h:panelGroup) > only require these two properties, so storing these values at UIComponentBase > it is possible to prevent create unnecessary Map.Entry instances. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira