ICEfaces
  1. ICEfaces
  2. ICE-2956

Bridge cannot recover blocking connection when running in Opera

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Critical Critical
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 1.8DR#2, 1.8
    • Component/s: Bridge
    • Labels:
      None
    • Environment:
      Opera browser

      Description

      Blocking connection cannot be recovered, when running in Opera with multiple windows, if the window/bridge instance owning the blocking connection is closed.

        Activity

        Hide
        Mircea Toma added a comment -

        Every time a window is closed or its URL is changed it fires an "unload" event that the contained bridge instances use to remove the cookie based marker that informs all bridge instances about the state of blocking connection (on/off). In Opera the "unload" (received through a handler set on "document.onunload" property) event is not fired because Opera chose to freeze and persist the state of the interpreter and document for caching purposes. As a side effect, when the window that contains the bridge instance owning the blocking connection is closed the rest of the bridge instances are not aware that a new blocking connection needs to be created since the cookie marker was never removed (which is the equivalent to the "off" state).

        Show
        Mircea Toma added a comment - Every time a window is closed or its URL is changed it fires an "unload" event that the contained bridge instances use to remove the cookie based marker that informs all bridge instances about the state of blocking connection (on/off). In Opera the "unload" (received through a handler set on "document.onunload" property) event is not fired because Opera chose to freeze and persist the state of the interpreter and document for caching purposes. As a side effect, when the window that contains the bridge instance owning the blocking connection is closed the rest of the bridge instances are not aware that a new blocking connection needs to be created since the cookie marker was never removed (which is the equivalent to the "off" state).
        Hide
        Mircea Toma added a comment - - edited

        One solution would be to implement some sort of leasing mechanism for the window owning the blocking connection, lease that would be renewed periodically until the window is closed.

        Show
        Mircea Toma added a comment - - edited One solution would be to implement some sort of leasing mechanism for the window owning the blocking connection, lease that would be renewed periodically until the window is closed.
        Hide
        Maxim Kalinin added a comment -

        As far as I understand, dispose-views request is also not send due to this behaviour of Opera, so there is no way to free resources when the window is closed.

        Show
        Maxim Kalinin added a comment - As far as I understand, dispose-views request is also not send due to this behaviour of Opera, so there is no way to free resources when the window is closed.
        Hide
        Ken Fyten added a comment -

        Need to review latest Opera release (9.5, 9.5.2) to see if they've made any changes in this area.

        Show
        Ken Fyten added a comment - Need to review latest Opera release (9.5, 9.5.2) to see if they've made any changes in this area.
        Hide
        Mircea Toma added a comment -

        I tried again running with Opera 9.5 and 9.5.2 but with no success. I also tried this: http://www.opera.com/support/search/view/827/ ... but again without any success.

        Show
        Mircea Toma added a comment - I tried again running with Opera 9.5 and 9.5.2 but with no success. I also tried this: http://www.opera.com/support/search/view/827/ ... but again without any success.
        Hide
        Ken Fyten added a comment -

        Need to investigate a resolution for this.

        Show
        Ken Fyten added a comment - Need to investigate a resolution for this.
        Hide
        Mircea Toma added a comment - - edited

        Implement lease mechanism for blocking connection.

        Show
        Mircea Toma added a comment - - edited Implement lease mechanism for blocking connection.

          People

          • Assignee:
            Unassigned
            Reporter:
            Mircea Toma
          • Votes:
            8 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: