Details
-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: 2.1-Beta2
-
Component/s: ACE-Components
-
Labels:None
-
Environment:ICEfaces 2
-
Assignee Priority:P1
-
Affects:Documentation (User Guide, Ref. Guide, etc.), Sample App./Tutorial, Compatibility/Configuration
-
Workaround Exists:Yes
-
Workaround Description:
Description
In testing the ACE Comp Suite application, the Data Table: Table Configuration example throws the following exception when running with MyFaces 2:
Table Config throws java.io.NotSerializableException: org.icefaces.ace.component.tableconfigpanel.TableConfigPanel
This will be a problem in any environment where the state gets serialized (serialized sessions in Tomcat, clusters, etc) but shows up more quickly with MyFaces because the implementation serializes the state far more frequently than Mojarra.
The issue is that the DataTable component not only keeps a reference to the TablePanelConfig class (if one is active) but also tries to save it's state which is a bit of an unusual design.
There are two possible solutions:
1) Make TablePanelConfig and TablePanelConfigBase implement Serializable (which involved changing TablePanelConfigMeta to generate the proper code).
2) Make the TablePanelConfig reference transient, and make sure it's only used as a cache for the getter method, which should fall back to searching for the component.
Table Config throws java.io.NotSerializableException: org.icefaces.ace.component.tableconfigpanel.TableConfigPanel
This will be a problem in any environment where the state gets serialized (serialized sessions in Tomcat, clusters, etc) but shows up more quickly with MyFaces because the implementation serializes the state far more frequently than Mojarra.
The issue is that the DataTable component not only keeps a reference to the TablePanelConfig class (if one is active) but also tries to save it's state which is a bit of an unusual design.
There are two possible solutions:
1) Make TablePanelConfig and TablePanelConfigBase implement Serializable (which involved changing TablePanelConfigMeta to generate the proper code).
2) Make the TablePanelConfig reference transient, and make sure it's only used as a cache for the getter method, which should fall back to searching for the component.
Activity
- All
- Comments
- History
- Activity
- Remote Attachments
- Subversion
Assigning to Ken for delegation to the component team.