MyFaces Trinidad
  1. MyFaces Trinidad
  2. TRINIDAD-1356

Application of changes by the ChangeManager is extremely slow

    Details

    • Type: Improvement Improvement
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.2.10-core
    • Fix Version/s: 1.2.11-core
    • Component/s: None
    • Labels:
      None
    • Environment:
      All

      Description

      Now that the SessionChangeManager applies all of the changes at the end of the RichDocument's tag processing, change application is extremely slow. This is because the ChangeManager needs to call invokeOnComponent for each change and there is no removal of duplicate changes. Since many components add a new attribute change every time the component is manipulated-splitters, disclosure components, tables, etc. The SessionChangeManager overhead becomes higher and higher the more time that the user spends interacting with the page. The solution is to collapse the most common changesattribute changes-together to decrease the number of changes that need to be applied on each request. (Another fix would be avoiding application of changes where the component state already includes the change). The complicating factor in collapsing changes is that the MoveChildComponentChange can cause the clientId of a component to be modified so that the current clientId of the component doesn't match the clientId that an earlier change was recorded against. The solution to this problem is to track the MoveChildComponentChanges and build a mapping table to Map current clientIds to earlier clientIds as we iterate through the change list looking for matches.

        Activity

          People

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

            Dates

            • Created:
              Updated:
              Resolved:

              Time Tracking

              Estimated:
              Original Estimate - 96h
              96h
              Remaining:
              Remaining Estimate - 96h
              96h
              Logged:
              Time Spent - Not Specified
              Not Specified

                Development