[jboss-user] [JBoss Portal] - PortletStateHolder

FelderR do-not-reply at jboss.com
Wed Jun 10 06:08:06 EDT 2009


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



More information about the jboss-user mailing list