Kuali Rice Development
  1. Kuali Rice Development
  2. KULRICE-13122

Tree group invokes nested property for every node which causes performance issues

    Details

    • Type: Improvement Improvement
    • Status: Closed Closed
    • Priority: Critical Critical
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 2.5
    • Security Level: Public (Public: Anyone can view)
    • Labels:
      None
    • Similar issues:
      KULRICE-9866Performance issue in calculate message totals on client
      KULRICE-12948PojoPropertyUtilsBean#isWriteable check fails on nested properties
      KULRICE-6011Proposition tree data groups are not showing up
      KULRICE-5587In tree views, expand/collapse controls get redecorated by jstree and make the tree look funny
      KULRICE-11394DatePicker does not work in a tree.
      KULRICE-7957Introduce layout options nested component class for item layout properties
      KULRICE-5838Modify code which generates SQL for the detailed document search to treat the group ID as a string instead of a number to prevent a type casting issue in Oracle when the SQL is used.
      KULRICE-12284Issue routing to a role which has an empty group member
      KULRICE-12790Select control with numeric property and blank line causes exception
      KULRICE-1616inquiries on nested properties not working
    • Epic Link:
    • Rice Module:
      KRAD
    • Application Requirement:
      KC
    • Sprint:
      UXI 2.5.0-m7 Sprint 1
    • KAI Review Status:
      Not Required
    • KTI Review Status:
      Not Required
    • Code Review Status:
      Not Required
    • Include in Release Notes?:
      Yes
    • Story Points:
      2

      Description

      Through profiling of the KC proposal, we found the following method consuming a lot of time:

      org.kuali.coeus.propdev.impl.core.ProposalDevelopmentDocumentForm.getMedusaTreeView() 9625

      The reason being it is getting hit several times to get property values for building the tree group:

      "I started looking into the Medusa thing. The tree component is calling that method for EVERY property instead of only once to render the whole tree. We can look into caching that, but its result can change due to external factors(IP -> Award) meaning that isn't a perfect solution to cache it in the form. If we could only call that method once each time we render the component that would be a huge improvement."

        Activity

        Hide
        Jerry Neal (Inactive) added a comment -

        Peter,

        I don't have much experience with the tree group. Was hoping you might have some time to see how much work this would be?

        Jerry

        Show
        Jerry Neal (Inactive) added a comment - Peter, I don't have much experience with the tree group. Was hoping you might have some time to see how much work this would be? Jerry
        Hide
        Jerry Neal (Inactive) added a comment -

        Peter,

        I was looking at this more, and I think the problem is action with DataFields. The tree group does just get the value once, but then all the data fields within the tree call get property value to determine if the value is null (and whether to build and inquiry). I noticed this being a problem in some other areas as well.

        If you want, I can take this back and try to figure something out.

        thanks,
        Jerry

        Show
        Jerry Neal (Inactive) added a comment - Peter, I was looking at this more, and I think the problem is action with DataFields. The tree group does just get the value once, but then all the data fields within the tree call get property value to determine if the value is null (and whether to build and inquiry). I noticed this being a problem in some other areas as well. If you want, I can take this back and try to figure something out. thanks, Jerry
        Hide
        Jerry Neal (Inactive) added a comment -

        Added request caching for medusa tree to form. It will require a bigger rework to prevent from invoke the getter multiple times

        Show
        Jerry Neal (Inactive) added a comment - Added request caching for medusa tree to form. It will require a bigger rework to prevent from invoke the getter multiple times

          People

          • Assignee:
            Jerry Neal (Inactive)
            Reporter:
            Douglas Pace
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Agile

                Structure Helper Panel