ICEfaces
  1. ICEfaces
  2. ICE-5652

UpdateElements.coalesceWithPrevious overwrites JavaScript calls

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.8.2
    • Fix Version/s: 1.8.3, 1.8.2-EE-GA_P02, 2.0.0
    • Component/s: Framework
    • Labels:
      None
    • Environment:
      Linux
      Java 1.6.0_18

      Description

      Our web application receives async events from our external application server that directs the web application to display something new. For example, an event is sent to the web server environment to display a certain object in a page, or display a tab within a page, or focus on a specific field on a page. To implement this, we use Server push to update the page in the browser, and often we use javascript calls (via the JavascriptContext.addJavascriptCall method) to execute this. Typically, we use the renderLater() method on the PersistentFacesContext to initiate the server push.

      We can get multiple async events at once from our server. We've noticed cases where multiple events were being applied to the PersistentFacesState before it had a chance to send the updates to the browser. In these cases, the UpdateElements were combining the changes (as expected).

      What we noticed was if two or more commands were coalesced together, and both commands had different Javascript commands, only the last one was sent to the browser. The coalesce command overwrote any existing Javascript command with the last one in. This is causing us problems, as many of the subsequent events rely on the previous events being sent.
      1. javascript_coalesce.patch
        1 kB
        Ed Hillmann
      2. updatedPatch.txt
        3 kB
        Ed Hillmann

        Activity

        Repository Revision Date User Message
        ICEsoft Public SVN Repository #23200 Wed Nov 24 16:16:54 MST 2010 mircea.toma ICE-5652 Render JS code as unescaped text so that browsers interpret the code correctly when updating elements that include scripts.
        Files Changed
        Commit graph MODIFY /icefaces2/trunk/icefaces/compat/components/src/main/java/com/icesoft/faces/component/panelpopup/PanelPopupRenderer.java
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #23133 Tue Nov 16 12:10:03 MST 2010 mircea.toma ICE-5652 Make sure the calls to Ice.modal.stop function are valid since component might invoke the function multiple times.
        Files Changed
        Commit graph MODIFY /icefaces/trunk/icefaces/bridge/lib/extras/style.js
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #23132 Tue Nov 16 12:09:37 MST 2010 mircea.toma ICE-5652 Make sure the calls to Ice.modal.stop function are valid since component might invoke the function multiple times.
        Files Changed
        Commit graph MODIFY /icefaces/trunk/icefaces/bridge/lib/extras/style.js
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #23131 Tue Nov 16 12:04:28 MST 2010 mircea.toma ICE-5652 Render JS code in script element to trigger DOM diff when coordinates are changing. To avoid render interference with visibility state use processDecodes method for saving visibility state.
        Files Changed
        Commit graph MODIFY /icefaces2/trunk/icefaces/compat/components/src/main/java/com/icesoft/faces/component/panelpopup/PanelPopupRenderer.java
        Commit graph MODIFY /icefaces2/trunk/icefaces/compat/components/src/main/java/com/icesoft/faces/component/panelpopup/PanelPopup.java
        Commit graph MODIFY /icefaces2/trunk/icefaces/compat/core/src/main/javascript/extras/extras.js
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #23127 Tue Nov 16 10:59:49 MST 2010 mircea.toma ICE-5652 Render JS code in script element to trigger DOM diff when coordinates are changing. To avoid render interference with visibility state use processDecodes method for saving visibility state.
        Files Changed
        Commit graph MODIFY /icefaces/trunk/icefaces/component/src/com/icesoft/faces/component/panelpopup/PanelPopupRenderer.java
        Commit graph MODIFY /icefaces/trunk/icefaces/component/src/com/icesoft/faces/component/panelpopup/PanelPopup.java
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #23112 Fri Nov 12 18:24:44 MST 2010 mark.collette ICE-5652 : UpdateElements.coalesceWithPrevious overwrites JavaScript calls
        Files Changed
        Commit graph MODIFY /icefaces2/trunk/icefaces/compat/components/src/main/java/com/icesoft/faces/component/panelpopup/PanelPopup.java
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #23111 Fri Nov 12 18:11:30 MST 2010 mark.collette ICE-5652 : UpdateElements.coalesceWithPrevious overwrites JavaScript calls
        Files Changed
        Commit graph MODIFY /icefaces/trunk/icefaces/component/src/com/icesoft/faces/component/panelpopup/PanelPopup.java
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #23104 Thu Nov 11 17:19:16 MST 2010 mircea.toma ICE-5652 Send JS code to controll the popup only when the visibility changes its state.
        Files Changed
        Commit graph MODIFY /icefaces2/trunk/icefaces/compat/components/src/main/java/com/icesoft/faces/component/panelpopup/PanelPopupRenderer.java
        Commit graph MODIFY /icefaces2/trunk/icefaces/compat/components/src/main/java/com/icesoft/faces/component/panelpopup/PanelPopup.java
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #23103 Thu Nov 11 17:04:24 MST 2010 mircea.toma ICE-5652 Send JS initalization code only on page load or component markup update instead of sending it all the time.
        Files Changed
        Commit graph MODIFY /icefaces2/trunk/icefaces/compat/components/src/main/java/com/icesoft/faces/component/selectinputtext/SelectInputTextRenderer.java
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #23102 Thu Nov 11 16:58:04 MST 2010 mircea.toma ICE-5652 Send JS initalization code only on page load or component markup update instead of sending it all the time.
        Files Changed
        Commit graph MODIFY /icefaces/trunk/icefaces/component/src/com/icesoft/faces/component/selectinputtext/SelectInputTextRenderer.java
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #23101 Thu Nov 11 10:54:12 MST 2010 mircea.toma ICE-5652 Send JS code to controll the popup only when the visibility changes its state.
        Files Changed
        Commit graph MODIFY /icefaces/trunk/icefaces/component/src/com/icesoft/faces/component/ext/renderkit/GroupRenderer.java
        Commit graph MODIFY /icefaces/trunk/icefaces/component/src/com/icesoft/faces/component/panelpopup/PanelPopupRenderer.java
        Commit graph MODIFY /icefaces/trunk/icefaces/component/src/com/icesoft/faces/component/panelpopup/PanelPopup.java

          People

          • Assignee:
            Mircea Toma
            Reporter:
            Ed Hillmann
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: