Affects Version/s: 6.1.1 CE GA2, 6.1.20 EE GA2, 6.2.0 CE B1
Under WebLogic middleware, the session id used to track sessions needs to take a delimiter into account, which is "!" by default. If this issue is still occurring you will find attributes or objects set on the session to still have references to them in memory remaining after the "Sign out" link is clicked.
Steps to Reproduce:
0. Install Liferay Portal 6.1.1 CE GA2 on WebLogic 10.3.6.0 in accordance with these instructions http://www.liferay.com/community/wiki/-/wiki/Main/Deploying+JSF+Portlets+on+Oracle+WebLogic
1. Start the Liferay Portal
2. Download the attached
3. Copy the war to the Liferay /deploy folder
4. Add the
LPS-36492-leaktest-portlet-1.0.war portlet to a portal page
5. Reload the page
6. click on the Submit button in the portlet
7. Check that the error log shows a message stating "leakedThing has been put on the PortletSession ..."
8. install and launch VisualVM
9. Double click on the WebLogic jvm
10. Click on "Sampler"
11. Click on the "Memory" button
12. In the "[Class Name Filter](Contains)" textbox at the bottom type "LeakedThing" and press enter
13. You should see at least 1 instance of the LeakedThing object.
14. Click on the "Sign out" link to sign out of Liferay
15. Once signed out, check again in VisualVM and if you have this issue you will still see 1 instance of the LeakedThing even after pressing on the "Perform GC" button.
16. If there are no memory leaks then you will no longer see the LeakedThing after pressing Perform GC.
The test portlet demonstrates that there is an issue at the time of this entry where objects placed on the PortletSession will not be removed after signing out.