ICEfaces
  1. ICEfaces
  2. ICE-5862

Multiple windows/tabs open to the same portal page incorrectly dispose of all associated views

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.8.2-EE-GA_P01, 1.8.2a
    • Fix Version/s: 1.8.3, 1.8.2-EE-GA_P02
    • Component/s: Framework
    • Labels:
      None
    • Environment:
      ICEfaces 1.8 Portals Portlets
    • Affects:
      Documentation (User Guide, Ref. Guide, etc.)

      Description

      We have logic that, as views for a portal page are created, associates those views together in a collection. This collection can then be used during view disposal so that if one view is disposed, they can all be disposed. The reason this is necessary is that the dispose-views requests are initiated by the client. But in cases where the client does not know about all the views in a portal page (e.g. navigating away before all the portlets on the page completely render, or an exception in one or more portlets), it's possible to have Views created on the server that do not get diposed of until the session expires. By associating all the views on a page together, if one is disposed, they can all be disposed.

      However, determining the key value for associating portlet views together relies on proprietary code in the portal container. Typically this will be something like a page name. The problem occurs if the page name is not uniquely instanced in some way. In this case, if more than one tab or window is open to the same page, all views on all the tabs/windows will be bound under the same key. When one is disposed, all views in all tabs/windows are disposed which leads to exceptions when trying to interact with the other, still active tabs.

        People

        • Assignee:
          Deryk Sinotte
          Reporter:
          Deryk Sinotte
        • Votes:
          0 Vote for this issue
          Watchers:
          0 Start watching this issue

          Dates

          • Created:
            Updated:
            Resolved: