History | Log In     View a printable version of the current page.  
Issue Details (XML | Word | Printable)

Key: UP-1684
Type: Bug Bug
Status: Closed Closed
Resolution: Duplicate
Priority: Major Major
Assignee: Eric Dalquist
Reporter: Matt Peterson
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
uPortal

Already invalidated sessions not being detected properly during session_done event using Tomcat 4 resulting in memory leak

Created: 08/May/07 07:30 PM   Updated: 09/May/07 08:34 AM
Component/s: Portlet Container
Affects Version/s: 2.6.0 M1, 2.5.1 RC1, 2.5.1 RC2, 2.5.2 RC1, 2.5.1 RC3, 2.5.1 GA, 2.5.3 RC1, 2.5.2 GA, 2.5.3 RC2, 2.5.3 RC3, 2.5.3 GA
Fix Version/s: None

Original Estimate: Unknown Remaining Estimate: Unknown Time Spent: Unknown
Environment: Tomcat 4.1.31 - not sure which other versions prior to Tomcat 5.5.10 also generate this problem.
Issue Links:
Duplicate
 
This issue is duplicated by:
UP-1685 CPortletAdapter fails to handle excep... Minor Closed


 Description  « Hide
When CPortletAdapter receives a SESSION_DONE event, it tries to clear the portlet state which involves getting the session details. If the session has already been invalidated by some other means (which seems to always be the case when a user is loggin out), Tomcat 4.1.31 will return a NullPointerException. From Tomcat 5.5.10 onwards, it will return an IllegalStateException as per the servlet spec starting at 2.4. CPortletAdapter has code to catch this IllegalStateException as thrown by Tomcat 5.5.10 and carry on releasing the portlet state info, but it does not have provision to catch a NullPointerException as thrown by Tomcat 4.1.31. Adding an extra explicit catch for the NullPointerException resolved the problem for me, but perhaps a more generic exception catch might be more appropriate for dealing with other possible exceptions thrown by servlet containers in this situation???

Without the fix, portlet states never get released and build up in the tenured memory pool resulting in the Tomcat JVM constantly garbage collecting (100% CPU usage) before finally running out of memory and terminating the JVM process - self destruction.

 All   Comments   Work Log   Change History   FishEye      Sort Order:
Eric Dalquist [09/May/07 08:34 AM]
Andrew created a parallel issue that was used to track the fix. That issue is linked as a duplicate.