We are using Jboss Portal 2.7.1, Portletbridge 1.0.0.CR2, Seam 2.1.1 and 
Richfaces 3.3.1.

We did some bulk tests to get a feeling how many users can be handled by the 
portal. During the tests we found a memory leak in the class 
org.jboss.portletbridge.application.PortletStateHolder!

The class has an inner static class called LRUMap that holds the state of the 
Portlets using an identifier that consists of mode, sessionid and an uuid. 
There are 3 methods that cooperate with the LRUMap:


  | public void addWindowState(StateId stateId, PortletWindowState state);
  | public PortletWindowState getWindowState(StateId stateId);
  | private void removeSessionStates(String scopeId);
  | 

For each request a new window state is added. The problem is that the method 
removeSessionStates is never called. It should be called from the method


  | public void valueUnbound(HttpSessionBindingEvent event)
  | 

which implements the interface HttpSessionBindingListener, 
HttpSessionActivationListener

Now I have 3 questions:
1) Where is the SessionBindingEvent registered?
2) What does the class PortletStateHolder do? As I can see it's responsible for 
holding the state between the different phases in JSF? Is that right?
3) Can I savely remove the states in a filter after each request processing or 
is it necessary to hold the state within a session?

Thanks Rene

View the original post : 
http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4236655#4236655

Reply to the post : 
http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4236655
_______________________________________________
jboss-user mailing list
jboss-user@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to