ICEfaces
  1. ICEfaces
  2. ICE-4434

Ajax push doesn't work anymore after a page change in liferay portal

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major 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.

        Issue Links

          Activity

          Hide
          Deryk Sinotte added a comment -

          Duplicate of ICE-5184

          Show
          Deryk Sinotte added a comment - Duplicate of ICE-5184

            People

            • Assignee:
              Unassigned
              Reporter:
              Stefan Niederhauser
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: