You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by "Leonardo Uribe (JIRA)" <de...@myfaces.apache.org> on 2011/05/14 03:27:47 UTC

[jira] [Resolved] (MYFACES-3117) Current server state saving implementation prevents multi-window usage

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

Leonardo Uribe resolved MYFACES-3117.
-------------------------------------

       Resolution: Fixed
    Fix Version/s: 2.1.0
                   2.0.6

See the discussion here:

http://markmail.org/message/7yrh7267lr5jauua?q=[core]+Enhancements+to+State+Saving+Caching+Algorithm

> Current server state saving implementation prevents multi-window usage
> ----------------------------------------------------------------------
>
>                 Key: MYFACES-3117
>                 URL: https://issues.apache.org/jira/browse/MYFACES-3117
>             Project: MyFaces Core
>          Issue Type: Bug
>          Components: General
>    Affects Versions: 2.0.6-SNAPSHOT
>         Environment: myfaces core trunk
>            Reporter: Martin Kočí
>            Assignee: Leonardo Uribe
>            Priority: Critical
>             Fix For: 2.0.6, 2.1.0
>
>         Attachments: MYFACES-3117-1.patch, MYFACES-3117.patch
>
>
> Problem:
> open two tabs (or windows) in browser with view:
> <h:body>
>         <h:form id="formId">
>             <h:commandButton value="Click me 20x!" />
>         </h:form>
>  </h:body>
> then click the button on the first tab 20x or more -> then click the button on the second tab -> you will get the most beloved ViewExpiredException.
> Reason:
> oam.SerializedViewCollection drops the saved state for 2. tab from map. 
> Suggestion:
> remove the successfully restored view state from map. This can be done, because each SerializedViewKey is unique over *all requests* for one HttpSession -  see DefaultFaceletsStateManagementHelper.nextViewSequence(FacesContext). Because each request has unique sequence number, we can the "just restored" one remove from the map, because it can never come from  client again.
> Open question: the previous statement is true except the double submit problem: 	JAVASERVERFACES_SPEC_PUBLIC-559. In this case, server can process same request (with the same sequence number) twice.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira