Details

    • Type: Improvement Improvement
    • Status: Closed Closed
    • Priority: Major Major
    • Resolution: Complete
    • Affects Version/s: None
    • Fix Version/s: 2.3.1
    • Security Level: Public (Public: Anyone can view)
    • Labels:
      None
    • Similar issues:
      KULRICE-8797Reduce object creation in view lifecycle
      KULRICE-10547Component lifecycle processing task and execution context
      KULRICE-10539retrieveViaAjax delay lifecycle for components implementation
      KULRICE-10538retrieveViaAjax delay lifecycle analysis
      KULRICE-11298Investigate error with component lifecycle
      KULRICE-8798Look into multithreading during the view lifecycle
      KULRICE-7220Look into replacing component update process with full view lifecycle
      KULRICE-9794Reduce template invocations
      KULRICE-9433Reduce size of html response
      KULRICE-10438Analysis for delaying lifecycle row details component before it is needed
    • Epic Link:
    • Rice Module:
      KRAD
    • KRAD Feature Area:
      UIF MVC
    • Sprint:
      2.3.1 Sprint 2
    • KAI Review Status:
      Not Required
    • KTI Review Status:
      Not Required

      Description

      The following method in the validator class makes multiple calls to getComponentsForLifecycle on the same object. Each call instantiates a large number of objects (due to the way that method is implemented). So minimizing the number of calls is very beneficial

      src/main/java/org/kuali/rice/krad/datadictionary/validator/Validator.java
      private void runValidationsOnLifecycle(Component component, ValidationTrace tracer)

      The below is a different implementation for that method which saves the result for each successive utilization.

      private void runValidationsOnLifecycle(Component component, ValidationTrace tracer) {
      List<Component> componentsForLifecycle = component.getComponentsForLifecycle();
      if (componentsForLifecycle == null)

      { return; }
      if (!doValidationOnUIFBean(component)) { return; }

      tracer.addBean(component);
      for (int j = 0; j < componentsForLifecycle.size(); j++) {
      Component temp = componentsForLifecycle.get(j);
      if (temp == null)

      { continue; }

      if (tracer.getValidationStage() == ValidationTrace.START_UP)

      { ExpressionUtils.populatePropertyExpressionsFromGraph(temp, false); }

      if (temp.isRender())

      { temp.completeValidation(tracer.getCopy()); runValidationsOnLifecycle(temp, tracer.getCopy()); }

      }
      }

        Issue Links

          Activity

          Mark Fyffe (Inactive) logged work - 25/Aug/13 11:38 PM
          • Time Spent:
            4 hours
             
            <No comment>
          Mark Fyffe (Inactive) logged work - 08/Sep/13 12:12 PM - edited
          • Time Spent:
            2 hours
             
            First pass at reducing object creation overhead related to ComponentBase.
          Mark Fyffe (Inactive) logged work - 09/Sep/13 1:01 AM
          • Time Spent:
            2 hours
             
            Work on implementing transactional caching of componentsForLifecycle
          Mark Fyffe (Inactive) logged work - 13/Sep/13 6:17 AM
          • Time Spent:
            1 hour
             
            Merged deferred initialization of collections work to rice-2.3 branch
          Mark Fyffe (Inactive) logged work - 15/Sep/13 9:30 AM
          • Time Spent:
            2 hours
             
            Caching review and troubleshooting, third pass at reducing object creation.

            People

            • Assignee:
              Mark Fyffe (Inactive)
              Reporter:
              Jeff Domeyer (Inactive)
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Time Tracking

                Estimated:
                Original Estimate - 1 day, 2 hours Original Estimate - 1 day, 2 hours
                1d 2h
                Remaining:
                Remaining Estimate - 0 minutes
                0m
                Logged:
                Time Spent - 1 day, 3 hours
                1d 3h

                  Agile

                    Structure Helper Panel