Hi

Sorry for the late response, but I was looking other important issues (I
usually review issues with JSR-314 component first). I reviewed your patches
and I committed some of them, and made comments on the others.

> On the other hand, regarding serialization vs implements
>> PartialStateHolder,
>> > I've looked for some more externalizable objects: the
>> TagMethodExpression
>> > class is used in the MethodExpressionValueChangeListener, which
>> implements
>> > StateHolder and PartialMethodExpressionValueChangeListener, which
>> implements
>> > PartialStateHolder.
>>
>> > So maybe instead of being Externalizable,
>> > TagMethodExpression should also implement PartialStateHolder. There is a
>> > similar situation with TagValueExpression.
>>
>> I guess - Leonardo should clarify.
>>
>>
To save ValueExpressions, javax.faces.component._DeltaStateHelper uses an
InternalMap, but that one does not take into account PartialStateHolder
interface. So in this case does not apply.

In MethodExpression it is possible, but to do that, we need to solve two
questions:

- If we have an immutable object that implements Serializable interface and
a similar one that implements PartialStateHolder, which one is saved /
restored faster? which one has bigger state size? It is worth to implement
PartialStateHolder or keep it as Serializable?. To solve that we need to try
some simple performance tests with possible candidates.

- Does all methods that store MethodExpression variables (
UICommand.actionExpression) should handle PartialStateHolder interfaces? In
theory yes (I add this support before but then I revert it to the current
behavior because there is no evidence why use PartialStateHolder in this
case), but if we don't expect MethodExpression implementations implements
PartialStateHolder, just let it as is.

Look this class:
org.apache.myfaces.view.facelets.tag.jsf.core.SetPropertyActionListenerHandler
. It has a inner class called SetPropertyListener that implements
Serializable. javax.faces.component._DeltaList is used to store
FacesListeners and that one handles PartialStateHolder instances. That one
is other valid case.

best regards,

Leonardo Uribe

Reply via email to