You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by "Guy Coleman (JIRA)" <de...@myfaces.apache.org> on 2006/09/13 10:31:28 UTC

[jira] Commented: (TOMAHAWK-493) detailStamp facet in the last row not decoded/validated/updated

    [ http://issues.apache.org/jira/browse/TOMAHAWK-493?page=comments#action_12434384 ] 
            
Guy Coleman commented on TOMAHAWK-493:
--------------------------------------

Could a committer have a look at this issue? It's a simple fix..

> detailStamp facet in the last row not decoded/validated/updated
> ---------------------------------------------------------------
>
>                 Key: TOMAHAWK-493
>                 URL: http://issues.apache.org/jira/browse/TOMAHAWK-493
>             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 updated.
> The fix to this is simple:
> In processDetails() method, after this line: "process(context,facet,processAction);" put:
> 	            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: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira