[ https://issues.apache.org/jira/browse/MYFACES-3886?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13978313#comment-13978313 ]
Adam Balazs commented on MYFACES-3886: -------------------------------------- I think that is the expected behavior from PF to assign new windowID to every opened dialog. As a fix, I suggest to modify the SerializedViewCollection.java class at the line 87 as the followings: Replace this: if (_serializedViews.containsKey(key)) { // Update the state, the viewScopeId does not change. _serializedViews.put(key, state); return; } By this: if (_serializedViews.containsKey(key)) { // Update the state, the viewScopeId does not change. _serializedViews.put(key, state); _keys.remove(key); _keys.add(key); return; } This way the view will be at the end of the list, and the _keys will hold the views in 'touching' order. So the _keys[0] will be the oldest view which has not been modified. Patch attached. > 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 > Attachments: SerializedViewCollection.java.patch > > > 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)