Trinidad should be able to state save non-Serializable Lists
------------------------------------------------------------

                 Key: TRINIDAD-1236
                 URL: https://issues.apache.org/jira/browse/TRINIDAD-1236
             Project: MyFaces Trinidad
          Issue Type: Bug
          Components: Components
    Affects Versions: 1.2.9-core, 1.0.9-core
         Environment: Any environment in which the TreeState is Serialized and 
a non-Serializable List implementation (such as SubList) is used.  For example, 
client state saving or High Availability environments.
            Reporter: Blake Sullivan


Trinidad supports state saving of component attributes by delegating to the 
PropertyKey implementations.   For non-CAP_STATE_HOLDER, non CAP_LIST 
attributes, the PropertyKey assumes that simply returning the value is 
sufficient.  If the value is Serializable, this is sufficient to support 
client-state saving and fail over.  However, if the value is not-Serializable 
the Serialization process will fail when it is attempt.  In particular, a 
problem can occur with List.class (as opposed to CAP_LIST) PropertyKeys with a 
non-Serializable implementation.  While most common List implementations are 
Serializable, the implementations that AbstractList uses to implement sublist() 
are not.

The proposal is to change the default PropertyKey saveValue()/restoreValue() 
implementations to always use StateUtils.saveList(context, value); for 
PropertyKey's of type List.class when the instance is not a ValueExpression.  
Note that this won't help the more general case where the PropertyKey is of 
type Object.class and a List instance is used for the property value

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to