Details
-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: 1.8
-
Fix Version/s: 1.8.3, 1.8.2-EE-GA_P02
-
Component/s: Bridge
-
Labels:None
-
Environment:portlet: liferay 5.1.2
-
Workaround Exists:Yes
-
Workaround Description:Reregister the session after each page change.
Description
I register a session using the SessionRenderer. Ajax push works.
After I go to another portal page (with the same session), push doen't work anymore.
I think the problem the following:
Each portlet has its own session wrapper (a InterceptingPortletSession) and the GroupAsyncRenderer has a Set of weak references to the session wrappers it belongs.
Now if the portal page changes, the portlets of the old page are not used anymore.
Therefore their session wrappers are eligible for garbage collection and the weak references in the GroupAsync Renderer can become null.
When this happens, the whole renderer is removed and push doen't work anymore.
A solution could be not to use a portelt session wrapper but the "real" session that is GCed only after a logout or session timeout.
After I go to another portal page (with the same session), push doen't work anymore.
I think the problem the following:
Each portlet has its own session wrapper (a InterceptingPortletSession) and the GroupAsyncRenderer has a Set of weak references to the session wrappers it belongs.
Now if the portal page changes, the portlets of the old page are not used anymore.
Therefore their session wrappers are eligible for garbage collection and the weak references in the GroupAsync Renderer can become null.
When this happens, the whole renderer is removed and push doen't work anymore.
A solution could be not to use a portelt session wrapper but the "real" session that is GCed only after a logout or session timeout.
Issue Links
- duplicates
-
ICE-5184 transient push failure in portal environment
- Closed
Activity
- All
- Comments
- History
- Activity
- Remote Attachments
- Subversion