You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by "Leonardo Uribe (JIRA)" <de...@myfaces.apache.org> on 2007/06/27 00:43:26 UTC
[jira] Created: (TOMAHAWK-1035) preserveDataModel=true throws
ClassCastException (with Trinidad)
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
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.
[jira] Updated: (TOMAHAWK-1035) preserveDataModel=true throws
ClassCastException (with Trinidad)
Posted by "Grant Smith (JIRA)" <de...@myfaces.apache.org>.
[ https://issues.apache.org/jira/browse/TOMAHAWK-1035?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Grant Smith updated TOMAHAWK-1035:
----------------------------------
Resolution: Fixed
Fix Version/s: 1.1.7-SNAPSHOT
Status: Resolved (was: Patch Available)
Patch applied. Thanks Leonardo.
> 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
> Assignee: Grant Smith
> Fix For: 1.1.7-SNAPSHOT
>
> 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.
[jira] Updated: (TOMAHAWK-1035) preserveDataModel=true throws
ClassCastException (with Trinidad)
Posted by "Leonardo Uribe (JIRA)" <de...@myfaces.apache.org>.
[ 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.