You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by "Kamran Kashanian (JIRA)" <de...@myfaces.apache.org> on 2008/07/25 23:45:31 UTC

[jira] Reopened: (TRINIDAD-961) NON-FUNCTIONAL PARTIALTRIGGERS FOR TABLE COLUMN HEADER/FOOTER

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

Kamran Kashanian reopened TRINIDAD-961:
---------------------------------------


I need to reopen this issue and provide a new patch.  

Some profiling of the table and treeTable component performances with this patch indicate that the getContainerClientId() method in the patch can potentially get called a large number of times.  This method is called during the table/treeTable stamping process for every stamped child in the body of the table during decode/validate/update/render-response phases. It is also called for non-stamped children in the table/column header/footer facets.

The implementation of getContainerClientId method in the patch was inefficient. It avoided any caching of child components in order to handle any dynamically (programmatically) added child components (child columns etc) between lifecycle phases. So in effect it built a list of child columns every time the method was called. Profiling data indicated that this was slow and memory intensive.

Providing a new patch which creates a cache of child components in the table/column header/footer facets. The getContainerClientId implementation,  performs a lookup in the cache to determine if a given child component is stamped. The cache is updated at the start of each lifecycle phase in order to account for any dynamically added children between phases. 

> NON-FUNCTIONAL PARTIALTRIGGERS FOR TABLE COLUMN HEADER/FOOTER
> -------------------------------------------------------------
>
>                 Key: TRINIDAD-961
>                 URL: https://issues.apache.org/jira/browse/TRINIDAD-961
>             Project: MyFaces Trinidad
>          Issue Type: Bug
>          Components: Components
>    Affects Versions: 1.2.6-core
>         Environment: All
>            Reporter: Kamran Kashanian
>            Assignee: Matt Cooper
>             Fix For:  1.2.8-core
>
>         Attachments: trinidad_1.2.x.patch
>
>
> If a UIComponent inside the table column header/footer contains a partialTrigger referencing the component ID of a stamped component inside the table. When the partialTrigger is invoked,  the client ID that gets added to the partialTargets list  for the header/footer UIComponent includes the table "currency" key. So the component inside the column header/footer is incorrectly being treated as a stamped component. This prevents the update of components inside table header/footer (as a result of changes in stamped components in the table body) using partialTriggers. 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.