
|
If you were logged in you would be able to see more operations.
|
|
|
uPortal
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...
|
|
|
|
|
|
|
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.
|
|
Description
|
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. |
Show » |
|