myfaces-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mike Kienenberger (JIRA)" <>
Subject [jira] Commented: (TOMAHAWK-493) detailStamp facet in the last row not decoded/validated/updated
Date Wed, 13 Sep 2006 15:35:24 GMT
    [ ] 
Mike Kienenberger commented on TOMAHAWK-493:

Can you submit the fix as a patch, and upload it as a file attachment with the grant-rights-to-ASF
box checked?
If no one else gets to it by tomorrow, I will try to commit this change so long as there's
a patch available.

It would also help if there's a tomahawk example I can test it against (before and after).
If this already exists in a current example, just post the steps.

Otherwise, please post some page code, or even better, enhance the tomahawk example.

> detailStamp facet in the last row not decoded/validated/updated
> ---------------------------------------------------------------
>                 Key: TOMAHAWK-493
>                 URL:
>             Project: MyFaces Tomahawk
>          Issue Type: Bug
>    Affects Versions: 1.1.2
>            Reporter: Val Blant
> There is a problem with the state saving algorithm in org.apache.myfaces.component.html.ext.HtmlDataTable.
setRowIndex(int) method saves the state of the component in the context of the previous index
and then retrieves the appropriate state for the component in the context of the current index.
This ensures that components will have appropriate values for each row before doing the work
for any given phase. 
> The problem is that this algorithm will never store the state of the very last row on
the current page. This can be easily verified if you put some input fields into the detailStamp
facet, expand the last row on the page, update a value and do something to cause a postback.
The values in the facet will revert back to what they were before and the model will not be
> The fix to this is simple:
> In processDetails() method, after this line: "process(context,facet,processAction);"
> 	            if ( rowIndex == (last - 1) ) {
> 	                Set set = new HashSet();
> 	                set.add(facet);
> 	                hidableRowStates.put(
> 	                		getClientId(FacesContext.getCurrentInstance()),
> 	                		saveDescendantComponentStates(set.iterator(),false));
> 	            }
> This if-statement defines the special case that stores the state of the facet in the
last row on the page.

This message is automatically generated by JIRA.
If you think it was sent incorrectly contact one of the administrators:
For more information on JIRA, see:


View raw message