[ https://issues.apache.org/jira/browse/TOMAHAWK-1035?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Leonardo Uribe updated TOMAHAWK-1035: ------------------------------------- Status: Patch Available (was: Open) > preserveDataModel=true throws ClassCastException (with Trinidad) > ---------------------------------------------------------------- > > Key: TOMAHAWK-1035 > URL: https://issues.apache.org/jira/browse/TOMAHAWK-1035 > Project: MyFaces Tomahawk > Issue Type: Bug > Components: Extended Datatable > Environment: jboss-4.2.0.GA, windows XP > Reporter: Leonardo Uribe > Attachments: patch3.patch > > > When you have a datatable with preserveDataModel=true, it throws > ClassClastException when you use commandSortHeader and try to sort > the data (click it twice). > I believe that the problem is that trinidad use a cache mechanism in its > StateManager implementation. When you load first, it works well, but > when I click the sort header, throws the error, In the navigator, if I click > back, and try again the error is not thrown. > The component assume that the method restoreState is called(and the > Serialized model is restored) when there is a request, but this is not > true for trinidad StateManager Impl (If the tree exists trinidad takes it). > Solution: instead this line in method saveState of class > org.apache.myfaces.component.html.ext.HtmlDataTable > > if (isPreserveDataModel()) > { > values[2] = saveAttachedState(context, > getSerializableDataModel()); > } > add these lines > if (isPreserveDataModel()) > { > _preservedDataModel = getSerializableDataModel(); > values[2] = saveAttachedState(context, _preservedDataModel); > } > It's the same but note that when the method getDataModel() is called again, > it checks _preservedDataModel, and > the model is restored. > I have probe this with and without trinidad (using myfaces tomahawk examples > simple project) and works > without problems > I found a similar issue to this in TOMAHAWK-241, but in this issue I have not > found anything about the environment > when the error is thrown. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.