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

Leonardo Uribe commented on MYFACES-1960:
-----------------------------------------

After revision, added:

hard-soft: use an ReferenceMap(AbstractReferenceMap.HARD, 
AbstractReferenceMap.SOFT)
soft-weak: use an ReferenceMap(AbstractReferenceMap.SOFT, 
AbstractReferenceMap.WEAK, true)

Use a hard-soft mode could lead to a memory leak (MYFACES-1660). I don't like 
add this mode, but does not harm.



> Make the state-manager (JspStateManagerImpl) behaviour storing the previous 
> view-states in MyFaces optional
> -----------------------------------------------------------------------------------------------------------
>
>                 Key: MYFACES-1960
>                 URL: https://issues.apache.org/jira/browse/MYFACES-1960
>             Project: MyFaces Core
>          Issue Type: Improvement
>    Affects Versions: 1.1.6, 1.2.4
>            Reporter: Leonardo Uribe
>            Assignee: Leonardo Uribe
>         Attachments: MYFACES-1960-JSF11-v2.patch, MYFACES-1960-JSF11.patch, 
> MYFACES-1960-JSF12-v2.patch, MYFACES-1960-JSF12.patch
>
>
> Actually the class 
> org.apache.myfaces.application.jsp.JspStateManagerImpl.SerializedViewCollection
>  store the old views using:
>         protected Map getOldSerializedViewsMap() {
>             if (_oldSerializedViews == null) {
>                 _oldSerializedViews = new 
> ReferenceMap(AbstractReferenceMap.WEAK, AbstractReferenceMap.WEAK, true);
>             }
>             return _oldSerializedViews;
>         }
> Right now, this part is used when server side saving is enabled, as a second 
> level cache. If the view is not available on _serializedViews (the map that 
> holds the views in first place) , it tries to get it from 
> _oldSerializedViews. If it is found use it but if not just return null.
> The default should be that this behaviour is off (contrary to the current 
> case).
> It is more, there should be the possibility to use soft references instead 
> weak references, so the user can tune this by its own needs.
> The idea for solve this is create a param called 
> org.apache.myfaces.CACHE_OLD_VIEWS_IN_SESSION_MODE with the possible values:
> soft: use an ReferenceMap(AbstractReferenceMap.SOFT, 
> AbstractReferenceMap.SOFT, true)
> weak: use an ReferenceMap(AbstractReferenceMap.WEAK, 
> AbstractReferenceMap.WEAK, true)
> off, no: default, no cache is used
> The changes should be applied on 1.1 and 1.2.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to