ICEfaces
  1. ICEfaces
  2. ICE-8546

ace:dataTable -Nested tables state map incorrectly carried over to other rows

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 3.1, 3.2
    • Fix Version/s: 3.2
    • Component/s: ACE-Components
    • Labels:
      None
    • Environment:
      All

      Description

      An ace:dataTable is setup with 3 levels of nesting. The top level has row selection enabled and so does the second level. The second level has its panelExpansion pre-expanded via the row state. The issue comes after a row selection is made when the top level rows are all contracted. Expanding these rows after a selection causes the third level table to not be shown.

        Activity

        Hide
        Arran Mccullough added a comment -

        Attached test case that shows this issue.

        Steps:

        • Load welcomeICEfaces.jsf
        • Expand all three rows, no issues seen, all nested tables are shown.
        • Contract all of these rows.
        • Select the first row.
        • Expand the second row. The 3rd nested table is now not shown.
        • Expanding/contracting other rows also shows similar issues with the 3rd level table not showing or showing up.

        Adding in server side row selection doesn't help this issue but once a table is not shown, selecting the row in the 2nd level table shows the 3rd level table.

        Show
        Arran Mccullough added a comment - Attached test case that shows this issue. Steps: Load welcomeICEfaces.jsf Expand all three rows, no issues seen, all nested tables are shown. Contract all of these rows. Select the first row. Expand the second row. The 3rd nested table is now not shown. Expanding/contracting other rows also shows similar issues with the 3rd level table not showing or showing up. Adding in server side row selection doesn't help this issue but once a table is not shown, selecting the row in the 2nd level table shows the 3rd level table.
        Hide
        Nils Lundquist added a comment - - edited

        This issue is not surprising given the caching of the state map required to work around the broken client id based state saving.
        Fixing this issue will require exceedingly fine grained investigation to find a point at which the state map caching can be reloaded between row instance visits. This process will take much time and testing considering the multitude of ways that iterations of the row states can occur. It is entirely possible that behaviour could vary in MyFaces also.
        Without a fix to the root issue of using the full iterative clientId this hack will eventually have to have to be undertaken.

        Show
        Nils Lundquist added a comment - - edited This issue is not surprising given the caching of the state map required to work around the broken client id based state saving. Fixing this issue will require exceedingly fine grained investigation to find a point at which the state map caching can be reloaded between row instance visits. This process will take much time and testing considering the multitude of ways that iterations of the row states can occur. It is entirely possible that behaviour could vary in MyFaces also. Without a fix to the root issue of using the full iterative clientId this hack will eventually have to have to be undertaken.
        Hide
        Nils Lundquist added a comment - - edited

        Revision #30996
        Committed by nils.lundquist
        Moments ago
        ICE-8546 - Clear cached stateMap when parent id changes during clientId evaluation.

        Show
        Nils Lundquist added a comment - - edited Revision #30996 Committed by nils.lundquist Moments ago ICE-8546 - Clear cached stateMap when parent id changes during clientId evaluation.

          People

          • Assignee:
            Nils Lundquist
            Reporter:
            Arran Mccullough
          • Votes:
            1 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: