myfaces-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Leonardo Uribe (JIRA)" <...@myfaces.apache.org>
Subject [jira] [Commented] (MYFACES-3886) SerializedViewCollection does not update it's _keys list when _serializedViews contains key
Date Wed, 23 Apr 2014 14:44:18 GMT

    [ https://issues.apache.org/jira/browse/MYFACES-3886?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13978249#comment-13978249
] 

Leonardo Uribe commented on MYFACES-3886:
-----------------------------------------

Well, if primefaces does not assign a client window id to the dialog, there is no way that
MyFaces can chain the request as a "conversation" or in other words, maintain the precedence
tree. 

The related algorithm is here:

http://svn.apache.org/repos/asf/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/application/viewstate/SerializedViewCollection.java

The solution is make an "even more clever" choice of which view should be discarded, but I
don't have any idea how to do it. If all pages has a windowId, the ones without clientId should
be discarded first. The easy way is assign a windowId to the dialog, after all, that's the
expected way to do it. The thing is that algorithm should take care of the size of the structure,
because that is stored into session. You should ask to primefaces guys for this. Or you can
propose a patch and try to change the algorithm.

> SerializedViewCollection does not update it's _keys list when _serializedViews contains
key
> -------------------------------------------------------------------------------------------
>
>                 Key: MYFACES-3886
>                 URL: https://issues.apache.org/jira/browse/MYFACES-3886
>             Project: MyFaces Core
>          Issue Type: Bug
>          Components: General
>    Affects Versions: 2.2.2
>         Environment: PrimeFaces 4.0.12.
>            Reporter: Adam Balazs
>
> When I use DialogFramework (of PrimeFaces), it's adds a new view to the session every
time. The problem is that when I post an AJAX request to the original view, the _keys list
is not updated, only the view get updated in the _serializedViews map.
> After I reach the limit defined with the org.apache.myfaces.NUMBER_OF_VIEWS_IN_SESSION
context-param, MyFaces gets the first element in the _keys list (which is the container view)
- assuming that this is the oldest view in the session - and remove the corresponding view
from the _serializedViews map by the key. But clearly it is not, as I already posted some
AJAX requests to it.
> I think the optimal behavior would be the following: when a view gets an ajax request
the code should remove the the key from the _keys list and than add it as a last element.
> The related class is org.apache.myfaces.application.viewstate.SerializedViewCollection
at the if condition started at line 87.
> My question is if it is an intended behavior or if it's a bug.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Mime
View raw message