ICEfaces
  1. ICEfaces
  2. ICE-9626

Processing of asynchronous push starts before browser DOM update has finished

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: EE-3.3.0.GA_P01
    • Fix Version/s: 4.0.BETA, EE-3.3.0.GA_P02, 4.0
    • Component/s: Bridge, Framework
    • Labels:
      None
    • Environment:
      All, ICEpush
    • Assignee Priority:
      P2
    • Salesforce Case Reference:

      Description

      When navigating to a new JSF view with a big DOM and the backing bean of the view being navigated to triggers an asynchronous render as part of its postConstruct or as part as one of the getters, the HTTP POST to retrieve the updates for this asynchronous render posts to the old view instead of the new view and this causes a "Server Internal Error" because of a javax.faces.FacesException being thrown.

      In testing I did find that I wasn't able to reproduce the issue with lazyPush=true, but this may just be workaround for the test case only as it seems to occur when the push connection is already active.
      1. bigdom.xhtml
        499 kB
        Ted Goddard
      2. Case12432Example.zip
        24 kB
        Arran Mccullough
      3. newbigdom.xhtml
        499 kB
        Leon Steffens
      4. NewPageBean.java
        1 kB
        Leon Steffens
      5. PageBean.java
        1 kB
        Ted Goddard
      6. pushdelay.patch
        2 kB
        Ted Goddard

        Activity

        Hide
        Ted Goddard added a comment -

        icefaces.jar with patch applied

        Show
        Ted Goddard added a comment - icefaces.jar with patch applied
        Hide
        Ted Goddard added a comment -

        The sequence of events in the test case are as follows:

        • user clicks on commandLink, ajax event begins
        • page is rendered on server
        • push event occurs
        • browser handles push event, attempts to update welcome page since that is the action on the current form
        • commandLink click event completes
        • push updates are applied resulting either in error or return to welcome page

        The patch detects an outstanding ajax event and delays the retrieval of push updates until the ajax event is complete.

        After additional testing, this will be considered for a fix in the ICEfaces trunk.

        Show
        Ted Goddard added a comment - The sequence of events in the test case are as follows: user clicks on commandLink, ajax event begins page is rendered on server push event occurs browser handles push event, attempts to update welcome page since that is the action on the current form commandLink click event completes push updates are applied resulting either in error or return to welcome page The patch detects an outstanding ajax event and delays the retrieval of push updates until the ajax event is complete. After additional testing, this will be considered for a fix in the ICEfaces trunk.
        Hide
        Leon Steffens added a comment -

        Thank you very much Ted. I have applied the patch and removed our workaround and everything seems to be working great! We will continue with the testing on our side but as far as I can tell the issue is fixed.

        Show
        Leon Steffens added a comment - Thank you very much Ted. I have applied the patch and removed our workaround and everything seems to be working great! We will continue with the testing on our side but as far as I can tell the issue is fixed.
        Hide
        Ted Goddard added a comment -

        Change is checked in to ICEfaces 3 trunk.

        Show
        Ted Goddard added a comment - Change is checked in to ICEfaces 3 trunk.
        Hide
        Ted Goddard added a comment -

        Backport applied. Some surrounding code was changed, so some adjustment was required. Push updates verified working in auction and showcase.

        Show
        Ted Goddard added a comment - Backport applied. Some surrounding code was changed, so some adjustment was required. Push updates verified working in auction and showcase.

          People

          • Assignee:
            Ted Goddard
            Reporter:
            Arran Mccullough
          • Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: