[
https://issues.jboss.org/browse/RF-3878?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12825330#comment-12825330
]
Patrick Decat commented on RF-3878:
-----------------------------------
Reading the RichFaces 3.3 source code, I noticed it adds 1 to both
numberOfLogicalViews and numberOfViewsInSession parameters:
{code:title=https://source.jboss.org/browse/RichFaces/tags/3.3.4.Final/framework/impl/src/main/java-jsf12/org/ajax4jsf/application/AjaxStateHolder.java?hb=true#to86}
86 instance = new
AjaxStateHolder(numbersOfViewsInSession,
87
numbersOfLogicalViews);
{code}
and:
{code:title=https://source.jboss.org/browse/RichFaces/tags/3.3.4.Final/framework/impl/src/main/java-jsf12/org/ajax4jsf/application/AjaxStateHolder.java?hb=true#to53}
52 private AjaxStateHolder(int capacity, int numberOfViews) {
53 views = new LRUMap<String, LRUMap<String,
StateReference>>(capacity+1);
54 this.numberOfViews = numberOfViews;
55 }
{code}
and:
{code:title=https://source.jboss.org/browse/RichFaces/tags/3.3.4.Final/framework/impl/src/main/java-jsf12/org/ajax4jsf/application/AjaxStateHolder.java?hb=true#to173}
171 // TODO - make size parameter
configurable
172 viewVersions = new LRUMap<String,
StateReference>(
173
this.numberOfViews+1);
174 views.put(viewId, viewVersions);
{code}
Therefore, I went one step further down and set both values to zero,
effectively reaching a single view state:
{code}
<context-param>
<param-name>com.sun.faces.numberOfLogicalViews</param-name>
<param-value>0</param-value>
</context-param>
<context-param>
<param-name>com.sun.faces.numberOfViewsInSession</param-name>
<param-value>0</param-value>
</context-param>
{code}
That definitively breaks the back button support, but it saves lots of
megabytes for us, dividing by 4 the peak per session memory usage...
> Session memory leak
> -------------------
>
> Key: RF-3878
> URL: https://issues.jboss.org/browse/RF-3878
> Project: RichFaces
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Affects Versions: 3.2.0.SR1
> Reporter: Dmitri Voronov
> Assignee: Nick Belaevski
> Fix For: 3.3.0
>
>
> AjaxStateHolder saves all views in the session. But the same view can occur
> several times in this "cache"; the views from this "cache" are not reused and
> just fill the session. If an application has many large views and deals with
> many concurrent sessions, the heap can easily grow up to Gigabytes(!)
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
_______________________________________________
richfaces-issues mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/richfaces-issues