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
Deryk Sinotte
created issue -
Deryk Sinotte
made changes -
Field | Original Value | New Value |
---|---|---|
Salesforce Case | [] | |
Assignee | Ken Fyten [ ken.fyten ] |
Ken Fyten
made changes -
Salesforce Case | [] | |
Assignee Priority | P1 | |
Assignee | Ken Fyten [ ken.fyten ] | Nils Lundquist [ nils.lundquist ] |
Ken Fyten
made changes -
Salesforce Case | [] | |
Affects | [Documentation (User Guide, Ref. Guide, etc.), Sample App./Tutorial, Compatibility/Configuration] |
Nils Lundquist
made changes -
Status | Open [ 1 ] | Resolved [ 5 ] |
Fix Version/s | 3.0.RC1 [ 10300 ] | |
Fix Version/s | 3.0 [ 10241 ] | |
Resolution | Fixed [ 1 ] |
Ken Fyten
made changes -
Fix Version/s | 3.0 [ 10241 ] |
Ken Fyten
made changes -
Status | Resolved [ 5 ] | Closed [ 6 ] |
Assigning to Ken for delegation to the component team.