MyFaces Trinidad
  1. MyFaces Trinidad
  2. TRINIDAD-1185

Problems with the iterator implementation in RowSetTreeImpl class

    Details

    • Type: Improvement Improvement
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.2.9-core
    • Fix Version/s: 1.2.10-core, 1.0.10-core
    • Component/s: Components
    • Labels:
      None

      Description

      The iterator implementation (PathIterator) in the Trinidad RowKeySetTreeImpl class has the following problems:

      1) It loops over the tree model even if the set is empty
      2) It loops over the tree model even if the set contains no "default contained" nodes. "Default contained" nodes are "Expand All", "Select All", "Expand All Below", etc nodes.

      For large tree models, unnecessary looping over the tree model can be expensive, since it can force the model to perform additional data fetches (beyond what is currently displayed in the view port on the client).

      The attached patch provides a new iterator implementation called NodeIterator, which extends the current PathIterator and avoids unnecessary looping over the tree model. NodeIterator loops over the model only if it encounters "default contained" nodes in the set.

      1. rowkeyset.trunk.patch
        8 kB
        Kamran Kashanian
      2. rowkeyset.1.2.9.1.patch
        8 kB
        Kamran Kashanian

        Activity

        Kamran Kashanian created issue -
        Kamran Kashanian made changes -
        Field Original Value New Value
        Status Open [ 1 ] Patch Available [ 10002 ]
        Hide
        Kamran Kashanian added a comment -

        1.2.9.1 patch

        Show
        Kamran Kashanian added a comment - 1.2.9.1 patch
        Kamran Kashanian made changes -
        Attachment rowkeyset.1.2.9.1.patch [ 12388550 ]
        Kamran Kashanian made changes -
        Attachment trunk1.2.x.patch [ 12388551 ]
        Kamran Kashanian made changes -
        Attachment trunk1.2.x.patch [ 12388551 ]
        Kamran Kashanian made changes -
        Attachment rowkeyset.trunk.patch [ 12388553 ]
        Kamran Kashanian made changes -
        Attachment rowkeyset.1.2.9.1.patch [ 12388550 ]
        Kamran Kashanian made changes -
        Attachment rowkeyset.trunk.patch [ 12388553 ]
        Kamran Kashanian made changes -
        Attachment rowkeyset.1.2.9.1.patch [ 12388607 ]
        Kamran Kashanian made changes -
        Attachment rowkeyset.trunk.patch [ 12388608 ]
        Matthias Weßendorf made changes -
        Fix Version/s 1.0.10-core [ 12313343 ]
        Status Patch Available [ 10002 ] Resolved [ 5 ]
        Assignee Matthias Weßendorf [ matzew ]
        Resolution Fixed [ 1 ]
        Fix Version/s 1.2.10-core [ 12313342 ]
        Matthias Weßendorf made changes -
        Status Resolved [ 5 ] Closed [ 6 ]

          People

          • Assignee:
            Matthias Weßendorf
            Reporter:
            Kamran Kashanian
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development