hi,

i talked with ed about this topic and he opened [1].

imo we should implement a solution including a spi. it would be easier to
specify the mechanism based on our implementation.
furthermore, a spi would allow to implement a myfaces-core2 specific add-on
for libs like codi.

regards,
gerhard

[1] http://java.net/jira/browse/JAVASERVERFACES_SPEC_PUBLIC-949

http://www.irian.at

Your JSF powerhouse -
JSF Consulting, Development and
Courses in English and German

Professional Support for Apache MyFaces



2011/5/11 Leonardo Uribe <[email protected]>

> Hi
>
> There is an old, known problem related to server side state saving,
> that becomes more evident in JSF 2.0 and its ajax support.
>
> For more information about it, you can see:
>
> https://issues.apache.org/jira/browse/MYFACES-3117
> Current server state saving implementation prevents multi-window usage
> https://issues.apache.org/jira/browse/MYFACES-1791
> state management and multiple frames
>
> The objective of this mail is get some information from MyFaces
> community, given the difficulty involved in solve this problem.
>
> In few words: "... There is a problem in JSF when more than one window
> are opened in an application. There are only a maximum number of
> NUMBER_OF_VIEWS_IN_SESSION view states saved at one moment (when
> server side state saving is enabled). If 2 windows are opened and you
> navigate on one of them for NUMBER_OF_VIEWS_IN_SESSION times, you will
> lose the other window's state. ..."
>
> MyFaces algorithm for cache sessions is just a Map with a limited size
> that just save every view and remove the least recently used one.
>
> The limit is configured using this web config param:
>
> org.apache.myfaces.NUMBER_OF_VIEWS_IN_SESSION
>
> That defines the number of views per session allowable by an specific user.
>
> To solve this issue, we must consider two valid use cases:
>
> 1. Back Button: The user press browser's back button and then do a
> submit. In practice, there are some cases where press browser's back
> button is valid, but others where a back button should not be allowed.
> 2. Double Submit: The user press twice the submit button.
>
> Many efforts has been done in this area, for example see the this post
> from Mario Ivankovits:
>
> http://myfaces.apache.org/orchestra/myfaces-orchestra-core/multiwindow.html
>
> and in the latest times, there is some code interesting code in MyFaces
> Codi.
>
> A real solution for this one should be handled at level spec, but that
> does not means we can't do anything from myfaces side.
>
> I'm thinking on make our caching strategy more smarter when it decides
> which view should be removed from the map, creating a new param that
> limits the number of views that can be stored from sequential POST
> requests. This will limit the amount of browser back button clicks
> without get an expired exception, but on the other side it will
> preserve the views available for other windows doing other POST
> requests. Note this will not work on applications that uses
> POST-Redirect-GET pattern.
>
> Suggestions are welcome.
>
> Leonardo Uribe
>

Reply via email to