[ 
https://issues.apache.org/jira/browse/MYFACES-3567?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Leonardo Uribe resolved MYFACES-3567.
-------------------------------------

       Resolution: Fixed
    Fix Version/s: 2.1.9
                   2.0.15
    
> [perf] do not include empty delta state array in both client side and server 
> side state saving
> ----------------------------------------------------------------------------------------------
>
>                 Key: MYFACES-3567
>                 URL: https://issues.apache.org/jira/browse/MYFACES-3567
>             Project: MyFaces Core
>          Issue Type: Sub-task
>          Components: JSR-314
>            Reporter: Leonardo Uribe
>            Assignee: Leonardo Uribe
>             Fix For: 2.0.15, 2.1.9
>
>
> With the improvements done in PSS, it is usual to find view without delta 
> state. Such views passes an empty object array with two null slots.
> private static final Object[] EMPTY_STATES = new Object[]{null, null};
> The tricky part here is when the algorithm that restore the state returns 
> null, a ViewExpiredException is thrown. In this case the empty array 
> identifies a view with zero delta, but we don't want to store that empty 
> array into the state for both client side and server side state saving.
> Instead, we can store just a null value into the state and add some code that 
> check the condition and convert that null value to an empty array when the 
> view is restored and viceversa. In JSF 1.2 state saving the state is never 
> null, so the old code will continue working. If saveState is called passing a 
> null instance, we can store the empty array into the state and then check for 
> that condition to return the null value (which is invalid and cause 
> ViewExpiredException anyway).
> So, at the end we are just "switching" null and new Object[]{null, null} 
> before store them into the state, but all that will be benefical, because a 
> call to saveState with null state is invalid, but the call with empty object 
> array, which has meaning and is more frequently in views does not produce 
> additional state.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to