ICEfaces
  1. ICEfaces
  2. ICE-3746

ICEfaces on BlackBerry Bold occasionally requires page refresh on initial view

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.8DR#1
    • Fix Version/s: 1.8DR#2, 1.8
    • Component/s: Bridge
    • Labels:
      None
    • Environment:
      ICEfaces, BlackBerry Bold

      Description


      When an ICEfaces application is initially displayed or the Content Cache is cleared, the following exception may be thrown during iceSubmit()

      couldn't find container for property: bridge

      Mircea, what initialization steps need to take place for the "bridge" property to exist?

      This may be a browser bug, but it may also be desirable to find a workaround (such as an attempt to reinitialize the bridge).

      It does not appear to occur on the simulator.

        Activity

        Hide
        Ted Goddard added a comment -

        In application.js the following change:

        try

        { var documentSynchronizer = new Ice.Document.Synchronizer(window.logger, sessionID, viewID); }

        catch (e)

        { alert("synchronizer " + e); }

        occasionally displays
        "synchronizer Same-origin policy violation", so perhaps the history iframe is in a strange state due to not being cached.

        Mircea, what problems would arise if the documentSynchronizer was not initialized? A sufficient workaround may be to catch the above exception and log it; at least the bridge would otherwise initialize.

        Show
        Ted Goddard added a comment - In application.js the following change: try { var documentSynchronizer = new Ice.Document.Synchronizer(window.logger, sessionID, viewID); } catch (e) { alert("synchronizer " + e); } occasionally displays "synchronizer Same-origin policy violation", so perhaps the history iframe is in a strange state due to not being cached. Mircea, what problems would arise if the documentSynchronizer was not initialized? A sufficient workaround may be to catch the above exception and log it; at least the bridge would otherwise initialize.
        Hide
        Ted Goddard added a comment -

        workaround appears in scope for DR2.

        Show
        Ted Goddard added a comment - workaround appears in scope for DR2.
        Hide
        Ted Goddard added a comment -

        The problem occurs on this line of synchronizer.js

        if (this.historyFrame.location.hash.length > 0) this.reload();

        catching an exception here and proceeding would seem to be acceptable given that bridge initialization is more vital than history maintenance.

        Mircea, can you comment on the side effects of having the reload() not running to completion?

        Show
        Ted Goddard added a comment - The problem occurs on this line of synchronizer.js if (this.historyFrame.location.hash.length > 0) this.reload(); catching an exception here and proceeding would seem to be acceptable given that bridge initialization is more vital than history maintenance. Mircea, can you comment on the side effects of having the reload() not running to completion?
        Hide
        Mircea Toma added a comment -

        Ice.Document.Synchronizer detects if the back button was used, if so it will reload the entire page to make sure the page is in sync with the version on the server.
        The side effects of failing to synchronize the page could be that some updates cannot be applied to the browser's DOM. Although if you can't access the historyFrame that it could mean, heuristically, that the page was freshly re/loaded.

        Show
        Mircea Toma added a comment - Ice.Document.Synchronizer detects if the back button was used, if so it will reload the entire page to make sure the page is in sync with the version on the server. The side effects of failing to synchronize the page could be that some updates cannot be applied to the browser's DOM. Although if you can't access the historyFrame that it could mean, heuristically, that the page was freshly re/loaded.
        Hide
        Ted Goddard added a comment -

        Checked in a change where the history frame reload failure is simply logged. If testing shows that the back button does not work as expected on the BlackBerry, we can create specific JIRAs.

        Show
        Ted Goddard added a comment - Checked in a change where the history frame reload failure is simply logged. If testing shows that the back button does not work as expected on the BlackBerry, we can create specific JIRAs.

          People

          • Assignee:
            Unassigned
            Reporter:
            Ted Goddard
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: