myfaces-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Martin Kočí (JIRA) <...@myfaces.apache.org>
Subject [jira] [Created] (MYFACES-3117) Current server state saving implementation prevents multi-window usage
Date Tue, 26 Apr 2011 18:09:03 GMT
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čí
            Priority: Critical


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

Mime
View raw message