[ 
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.

Reply via email to