ICEfaces
  1. ICEfaces
  2. ICE-9285

DOM Diff Old DOM stale - results in erroneous update to unrendered region

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 3.3
    • Fix Version/s: EE-3.3.0.GA, 4.0.BETA, 4.0
    • Component/s: Framework
    • Labels:
      None
    • Environment:
      *
    • Assignee Priority:
      P1

      Description

      In the showcase ace:breadcrumbMenu example if you perform the following steps you can reproduce a JS error due to an update returning for a region that is not rendered. This is because the old DOM held by DOMDiff is stale and still shows that region as rendered from before the navigation. Upon returning from navigation, a different DOM is rendered due to example state being held in a Window or View scoped bean.

      The steps are as follows:
      1) Expand a province (BC)
      2) Select a city (Vancouver)
      3) Click the province breadcrumb (BC) from "Crumbs with URL"
      4) After Wiki page loads, use the back button to return to the example, note the selections / expansions are lost due to WindowScoped bean expiring.
      5) Expand the province you expanded before (BC) (no updates come back as the old DOM still shows this province as being expanded)
      6) Select another province (Alberta)
      7) JS errors will have been caused trying to update remove the select state from the City it believes is still selected (Vancouver)

      As evidence I've attached the DOM diff debugAB output from the request occurring at step 5. (Though in my test the province expanded was Alberta and the city selected was Edmonton - the effect is the same.)
      1. debugAB.txt
        35 kB
        Nils Lundquist

        Activity

          People

          • Assignee:
            Ted Goddard
            Reporter:
            Nils Lundquist
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: