[
https://issues.apache.org/jira/browse/TRINIDAD-1895?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Matt Cooper updated TRINIDAD-1895:
----------------------------------
Status: Resolved (was: Patch Available)
Fix Version/s: 2.0.0.2-core
Resolution: Fixed
> Issue with UIXIterator visitData implementation
> -----------------------------------------------
>
> Key: TRINIDAD-1895
> URL: https://issues.apache.org/jira/browse/TRINIDAD-1895
> Project: MyFaces Trinidad
> Issue Type: Bug
> Components: Components
> Affects Versions: 2.0.0-alpha
> Reporter: Kamran Kashanian
> Assignee: Matt Cooper
> Fix For: 2.0.0.2-core
>
> Attachments: visitdata.patch
>
>
> The UIXIterator 'visitData' method is called during 'visitTree' invocation to
> visit the stamped children of UIXIterator.
> The implementation uses an "IndexedRunner"/"KeyedRunner" to loop over all or
> some rows and visit the contents of the row. The issue is that the code
> skips over direct stamped children of the UIXIterator and instead visits the
> grandchildren.
> Looks like the code is assuming that direct children of UIXIterator are
> unstamped columns (UIXColumn) and should be skipped over during
> stamping-visit. This assumption is correct for sub-classes of UIXIterator
> but not for UIXIterator. UIXIterator does not have columns.
> The visiting logic is already using a NoColumnFacetsVisitContext. So on
> invokeVisitCallback, it skips over any columns and visits the column
> children. It also handles nested columns.
> So the proposal is to change the code in "IndexedRunner"/"KeyedRunner" as
> follows:
> Change this:
> @Override
> protected void process(UIComponent kid, ComponentProcessingContext
> cpContext)
> {
> if (kid.getChildCount()> 0)
> {
> for (UIComponent grandKid : kid.getChildren())
> {
> if (UIXComponent.visitTree(noColumnFacetContext, grandKid,
> visitCallback))
> {
> throw new AbortProcessingException();
> }
> }
> }
> }
> To this:
> @Override
> protected void process(UIComponent kid, ComponentProcessingContext
> cpContext)
> {
> if (UIXComponent.visitTree(noColumnFacetContext, kid,
> visitCallback))
> {
> throw new AbortProcessingException();
> }
> }
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.