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

          Matt Sargent made changes -
          Field Original Value New Value
          Documentation Review Status Pending Review [ 14643 ] Not Required [ 14642 ]
          Jerry Neal (Inactive) made changes -
          Fix Version/s 2.3 [ 16595 ]
          Jerry Neal (Inactive) made changes -
          Link This issue relates to KULRICE-6557 [ KULRICE-6557 ]
          Jessica Coltrin (Inactive) made changes -
          Fix Version/s 2.4 [ 16913 ]
          Fix Version/s 2.3 [ 16595 ]
          Jessica Coltrin (Inactive) made changes -
          Fix Version/s 2.4-backlog [ 16596 ]
          Fix Version/s 2.4 [ 16913 ]
          Jerry Neal (Inactive) made changes -
          Epic Link KULRICE-10089 [ 120211 ]
          Shem Patterson (Inactive) made changes -
          Workflow custom [ 163864 ] Copy of custom for rice [ 207798 ]
          Shem Patterson (Inactive) made changes -
          Workflow Copy of custom for rice [ 207798 ] custom [ 217546 ]
          Shem Patterson (Inactive) made changes -
          Workflow custom [ 217546 ] Rice Workflow [ 227294 ]
          Mark Fyffe (Inactive) made changes -
          Assignee Mark Fyffe [ mwfyffe ]
          Mark Fyffe (Inactive) logged work - 25/Aug/13 11:38 PM
          • Time Spent:
            4 hours
             
            <No comment>
          Hide
          Mark Fyffe (Inactive) added a comment -

          In reviewing component lifecycle and open performance JIRAs, I have noted significant object creation in the context of processing nested components. In some cases, for example, getComponentsForLifecycle() is called simply for the purpose of getting the size of list in handling validation errors.

          This JIRA is related, so appears a good landing place for reducing this object creation.

          I am working to use a transaction resource binding rooted at ComponentBase to construct unmodifiable collections for generating nested components once per transaction.

          Once an initial pass is ready for testing, I will evaluate both positive and negative impacts during the apply model phase.

          Show
          Mark Fyffe (Inactive) added a comment - In reviewing component lifecycle and open performance JIRAs, I have noted significant object creation in the context of processing nested components. In some cases, for example, getComponentsForLifecycle() is called simply for the purpose of getting the size of list in handling validation errors. This JIRA is related, so appears a good landing place for reducing this object creation. I am working to use a transaction resource binding rooted at ComponentBase to construct unmodifiable collections for generating nested components once per transaction. Once an initial pass is ready for testing, I will evaluate both positive and negative impacts during the apply model phase.
          Mark Fyffe (Inactive) made changes -
          Status Open [ 1 ] In Progress [ 3 ]
          Mark Fyffe (Inactive) made changes -
          Remaining Estimate 0 minutes [ 0 ]
          Time Spent 4 hours [ 14400 ]
          Worklog Id 87762 [ 87762 ]
          Mark Fyffe (Inactive) made changes -
          Status In Progress [ 3 ] Open [ 1 ]
          Hide
          Mark Fyffe (Inactive) added a comment -

          Although some trivial gains were seen in refresh calls, my initial pass at this issue didn't result in an improvement for any targeted views. It would appear on initial rendering that getComponentsForLifecycle() is called once per transaction.

          I also noted some instability introduced by the changes that would take a little additional time to analyze and correct, so have set this effort aside for now. I may cycle back to this according to priority after work on optimizations in the FreeMarker rendering phase.

          Mark

          Show
          Mark Fyffe (Inactive) added a comment - Although some trivial gains were seen in refresh calls, my initial pass at this issue didn't result in an improvement for any targeted views. It would appear on initial rendering that getComponentsForLifecycle() is called once per transaction. I also noted some instability introduced by the changes that would take a little additional time to analyze and correct, so have set this effort aside for now. I may cycle back to this according to priority after work on optimizations in the FreeMarker rendering phase. Mark
          Jerry Neal (Inactive) made changes -
          Original Estimate 0 minutes [ 0 ]
          Fix Version/s 2.3.1 [ 17053 ]
          Fix Version/s 2.4-backlog [ 16596 ]
          Priority Minor [ 4 ] Major [ 3 ]
          Jerry Neal (Inactive) made changes -
          Sprint 2.3.1 Sprint 2 [ 64 ]
          Jerry Neal (Inactive) made changes -
          Rank Ranked higher
          Hide
          Jerry Neal (Inactive) added a comment -

          Mark,

          Do you have an estimate for this Jira?

          thanks,
          Jerry

          Show
          Jerry Neal (Inactive) added a comment - Mark, Do you have an estimate for this Jira? thanks, Jerry
          Hide
          Mark Fyffe (Inactive) added a comment -

          Setting 10h total estimate for this issue, including the 4h spent on analysis so far.

          Roughly 6h remains: 2h to review initial analysis to determine the root cause of issues noted in the first pass at resolving this one*, then 4h to code a general solution for reducing per-transaction duplication of transient components.

          * Issues noted - both may have been unrelated to the original solution, or caused by simple typos. A second pass will be more incremental to take care not to recreate these conditions:

          • No reduction in object creation on initial load of targeted view
          • Post-rendering JS errors indicating potential corruption of component instances - these may have been unrelated.
          Show
          Mark Fyffe (Inactive) added a comment - Setting 10h total estimate for this issue, including the 4h spent on analysis so far. Roughly 6h remains: 2h to review initial analysis to determine the root cause of issues noted in the first pass at resolving this one*, then 4h to code a general solution for reducing per-transaction duplication of transient components. * Issues noted - both may have been unrelated to the original solution, or caused by simple typos. A second pass will be more incremental to take care not to recreate these conditions: No reduction in object creation on initial load of targeted view Post-rendering JS errors indicating potential corruption of component instances - these may have been unrelated.
          Mark Fyffe (Inactive) made changes -
          Original Estimate 0 minutes [ 0 ] 1 day, 2 hours [ 36000 ]
          Remaining Estimate 0 minutes [ 0 ] 6 hours [ 21600 ]
          Hide
          Mark Fyffe (Inactive) added a comment -

          Added instance counter to ComponentBase -

          Peformance Medium constructs the following component instances - looking for opportunities for reusing.

          Monitors:
            new-comp:8250:Action
            new-comp:6:BlockUI
            new-comp:14:BreadcrumbItem
            new-comp:3:Breadcrumbs
            new-comp:84:CheckboxControl
            new-comp:76:CollectionGroup
            new-comp:91:DatePicker
            new-comp:904:Disclosure
            new-comp:168:FieldGroup
            new-comp:2939:FieldValidationMessages
            new-comp:2:FormView
            new-comp:793:Group
            new-comp:899:GroupValidationMessages
            new-comp:3:Growls
            new-comp:363:Header
            new-comp:3035:Help
            new-comp:9687:Image
            new-comp:2896:InputField
            new-comp:2426:Inquiry
            new-comp:3356:Label
            new-comp:8484:LightBox
            new-comp:3639:Link
            new-comp:4762:Message
            new-comp:62:MessageField
            new-comp:2:NavigationGroup
            new-comp:4:PageGroup
            new-comp:5:PageValidationMessages
            new-comp:80:Pager
            new-comp:2429:QuickFinder
            new-comp:43:RichTable
            new-comp:42:SelectControl
            new-comp:2379:TextControl
            new-comp:6014:Tooltip
            new-comp:3:ViewHeader
          
          Show
          Mark Fyffe (Inactive) added a comment - Added instance counter to ComponentBase - Peformance Medium constructs the following component instances - looking for opportunities for reusing. Monitors: new-comp:8250:Action new-comp:6:BlockUI new-comp:14:BreadcrumbItem new-comp:3:Breadcrumbs new-comp:84:CheckboxControl new-comp:76:CollectionGroup new-comp:91:DatePicker new-comp:904:Disclosure new-comp:168:FieldGroup new-comp:2939:FieldValidationMessages new-comp:2:FormView new-comp:793:Group new-comp:899:GroupValidationMessages new-comp:3:Growls new-comp:363:Header new-comp:3035:Help new-comp:9687:Image new-comp:2896:InputField new-comp:2426:Inquiry new-comp:3356:Label new-comp:8484:LightBox new-comp:3639:Link new-comp:4762:Message new-comp:62:MessageField new-comp:2:NavigationGroup new-comp:4:PageGroup new-comp:5:PageValidationMessages new-comp:80:Pager new-comp:2429:QuickFinder new-comp:43:RichTable new-comp:42:SelectControl new-comp:2379:TextControl new-comp:6014:Tooltip new-comp:3:ViewHeader
          Hide
          Mark Fyffe (Inactive) added a comment -

          Updated title to reflect effort. The original report is a small example of excessive object creation during component lifecycle, but the fix is a larger pass at reducing object creation and increasing reuse where feasible throughout the component lifecycle.

          This pass covers other scenarios in addition to nested lifecycle components used by validator.

          Show
          Mark Fyffe (Inactive) added a comment - Updated title to reflect effort. The original report is a small example of excessive object creation during component lifecycle, but the fix is a larger pass at reducing object creation and increasing reuse where feasible throughout the component lifecycle. This pass covers other scenarios in addition to nested lifecycle components used by validator.
          Mark Fyffe (Inactive) made changes -
          Summary Validator - reuse getComponentsForLifecycle Reduce object creation in component lifecycle
          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) made changes -
          Remaining Estimate 6 hours [ 21600 ] 4 hours [ 14400 ]
          Time Spent 4 hours [ 14400 ] 6 hours [ 21600 ]
          Worklog Id 88244 [ 88244 ]
          Mark Fyffe (Inactive) made changes -
          Worklog Id 88244 [ 88244 ]
          Hide
          Mark Fyffe (Inactive) added a comment -

          Committed one pass at reducing object construction by deferring initialization of ComponentBase collection fields until needed. Also committed instance counter for ComponentBase indicated in last comment.

          Below is a process trace for TransactionView, which was noticeably improved by this pass. Excessive object creation on components can be seen in this trace, however with related collections, overhead is reduced enough to see a 3-4s reduction in overall processing time at the apply model phase.

          2013-09-08 12:07:34,794 [http-8080-4] u:/d: INFO  org.kuali.rice.krad.uif.util.P
          rocessLogger - KRAD Process Trace (request): Servlet Request /kr-krad/transactio
          n
            at org.kuali.rice.krad.uif.util.ProcessLoggingFilter.doFilter(ProcessLoggingFilter.java:69)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
          Initial Memory Usage: 255.429M/745.250M/910.250M - 34% free
          pre-handle..............................00:00.000 00:00.000 255.209M -224.781k
          new-comp:1000:Tooltip...................00:00.239 00:00.239 384.375M 129.165M
          build-view:TransactionView..............00:00.031 00:00.270 373.541M -10.834M
          build-view-params:TransactionView.......00:00.000 00:00.270 373.541M 0
          build-view-backup-params:TransactionView00:00.000 00:00.270 373.541M 0
          perform-lifecycle:TransactionView.......00:00.000 00:00.270 373.541M 0
          new-comp:1000:Help......................00:00.000 00:00.270 371.374M -2.166M
          new-comp:2000:Tooltip...................00:00.000 00:00.270 371.374M 0
          new-comp:1000:Message...................00:00.016 00:00.286 364.563M -6.810M
          new-comp:1000:Label.....................00:00.000 00:00.286 362.706M -1.856M
          new-comp:3000:Tooltip...................00:00.015 00:00.301 357.442M -5.262M
          new-comp:1000:Disclosure................00:00.000 00:00.301 355.894M -1.546M
          new-comp:1000:GroupValidationMessages...00:00.000 00:00.301 355.584M -316.984k
          new-comp:1000:Group.....................00:00.000 00:00.301 354.657M -950.937k
          new-comp:1000:InputField................00:00.016 00:00.317 353.417M -1.238M
          new-comp:1000:FieldValidationMessages...00:00.000 00:00.317 353.417M 0
          new-comp:1000:TextAreaControl...........00:00.000 00:00.317 349.083M -4.333M
          new-comp:2000:Help......................00:00.016 00:00.333 344.130M -4.953M
          new-comp:4000:Tooltip...................00:00.000 00:00.333 343.821M -317.015k
          new-comp:1000:Header....................00:00.015 00:00.348 332.055M -11.765M
          new-comp:2000:Message...................00:00.000 00:00.348 329.578M -2.476M
          new-comp:5000:Tooltip...................00:00.000 00:00.348 329.578M 0
          new-comp:2000:Label.....................00:00.000 00:00.348 325.863M -3.714M
          new-comp:3000:Help......................00:00.016 00:00.364 316.885M -8.976M
          new-comp:6000:Tooltip...................00:00.000 00:00.364 315.957M -950.945k
          new-comp:2000:Disclosure................00:00.000 00:00.364 311.623M -4.333M
          new-comp:2000:GroupValidationMessages...00:00.000 00:00.364 311.623M 0
          new-comp:2000:Group.....................00:00.000 00:00.364 309.765M -1.856M
          new-comp:2000:FieldValidationMessages...00:00.015 00:00.379 308.217M -1.546M
          new-comp:2000:InputField................00:00.000 00:00.379 307.908M -316.968k
          new-comp:7000:Tooltip...................00:00.000 00:00.379 302.026M -5.881M
          apply-model:TransactionView.............00:00.032 00:00.411 298.620M -3.405M
          apply-comp-model:TransactionView........00:00.000 00:00.411 298.310M -317.015k
          new-comp:2000:TextAreaControl...........00:00.031 00:00.442 295.797M -2.512M
          new-comp:3000:Message...................00:00.016 00:00.458 288.677M -7.120M
          new-comp:4000:Help......................00:00.000 00:00.458 285.581M -3.095M
          new-comp:8000:Tooltip...................00:00.000 00:00.458 284.961M -634.257k
          new-comp:3000:Label.....................00:00.000 00:00.458 283.723M -1.238M
          new-comp:9000:Tooltip...................00:00.015 00:00.473 271.649M -12.073M
          new-comp:3000:Disclosure................00:00.016 00:00.489 262.672M -8.976M
          new-comp:3000:GroupValidationMessages...00:00.000 00:00.489 262.672M 0
          new-comp:2000:Header....................00:00.000 00:00.489 261.743M -951.164k
          new-comp:3000:Group.....................00:00.015 00:00.504 259.266M -2.476M
          new-comp:3000:FieldValidationMessages...00:00.000 00:00.504 258.647M -634.031k
          new-comp:3000:InputField................00:00.000 00:00.504 258.337M -317.015k
          new-comp:5000:Help......................00:00.000 00:00.504 258.337M 0
          new-comp:10000:Tooltip..................00:00.000 00:00.504 258.028M -317.015k
          new-comp:4000:Message...................00:00.000 00:00.504 250.908M -7.120M
          new-comp:3000:TextAreaControl...........00:00.016 00:00.520 248.741M -2.166M
          new-comp:4000:Label.....................00:00.000 00:00.520 245.026M -3.713M
          new-comp:11000:Tooltip..................00:00.000 00:00.520 244.716M -317.015k
          new-comp:6000:Help......................00:00.016 00:00.536 231.405M -13.311M
          new-comp:12000:Tooltip..................00:00.000 00:00.536 231.095M -317.015k
          new-comp:13000:Tooltip..................00:00.047 00:00.583 390.868M 159.771M
          new-comp:4000:Disclosure................00:00.000 00:00.583 390.868M 0
          new-comp:4000:GroupValidationMessages...00:00.000 00:00.583 390.868M 0
          new-comp:4000:FieldValidationMessages...00:00.000 00:00.583 386.598M -4.269M
          new-comp:4000:InputField................00:00.000 00:00.583 386.598M 0
          new-comp:4000:Group.....................00:00.000 00:00.583 386.598M 0
          new-comp:5000:Message...................00:00.000 00:00.583 386.598M 0
          new-comp:5000:Label.....................00:00.000 00:00.583 379.482M -7.115M
          new-comp:7000:Help......................00:00.015 00:00.598 378.059M -1.422M
          new-comp:14000:Tooltip..................00:00.000 00:00.598 378.059M 0
          new-comp:4000:TextAreaControl...........00:00.000 00:00.598 375.212M -2.845M
          new-comp:3000:Header....................00:00.000 00:00.598 368.096M -7.115M
          new-comp:15000:Tooltip..................00:00.000 00:00.598 363.827M -4.269M
          new-comp:8000:Help......................00:00.016 00:00.614 351.018M -12.808M
          new-comp:16000:Tooltip..................00:00.000 00:00.614 351.018M 0
          new-comp:6000:Message...................00:00.000 00:00.614 348.171M -2.845M
          new-comp:5000:Disclosure................00:00.000 00:00.614 345.326M -2.845M
          new-comp:5000:GroupValidationMessages...00:00.000 00:00.614 345.326M 0
          new-comp:5000:FieldValidationMessages...00:00.000 00:00.614 342.479M -2.845M
          new-comp:5000:InputField................00:00.000 00:00.614 342.479M 0
          new-comp:6000:Label.....................00:00.000 00:00.614 341.056M -1.422M
          new-comp:5000:Group.....................00:00.015 00:00.629 341.056M 0
          new-comp:17000:Tooltip..................00:00.000 00:00.629 336.787M -4.268M
          new-comp:5000:TextAreaControl...........00:00.000 00:00.629 326.824M -9.961M
          new-comp:9000:Help......................00:00.000 00:00.629 323.977M -2.845M
          new-comp:18000:Tooltip..................00:00.000 00:00.629 323.977M 0
          new-comp:7000:Message...................00:00.016 00:00.645 309.746M -14.231M
          new-comp:19000:Tooltip..................00:00.000 00:00.645 309.746M 0
          new-comp:7000:Label.....................00:00.000 00:00.645 302.629M -7.115M
          new-comp:4000:Header....................00:00.016 00:00.661 301.207M -1.422M
          new-comp:6000:Disclosure................00:00.000 00:00.661 299.783M -1.422M
          new-comp:6000:GroupValidationMessages...00:00.000 00:00.661 299.783M 0
          new-comp:6000:FieldValidationMessages...00:00.000 00:00.661 296.936M -2.845M
          new-comp:6000:InputField................00:00.000 00:00.661 296.936M 0
          new-comp:20000:Tooltip..................00:00.000 00:00.661 296.936M 0
          new-comp:10000:Help.....................00:00.000 00:00.661 296.936M 0
          new-comp:6000:Group.....................00:00.000 00:00.661 295.513M -1.422M
          new-comp:21000:Tooltip..................00:00.015 00:00.676 282.705M -12.808M
          new-comp:6000:TextAreaControl...........00:00.000 00:00.676 279.858M -2.845M
          new-comp:8000:Message...................00:00.016 00:00.692 272.742M -7.115M
          new-comp:22000:Tooltip..................00:00.000 00:00.692 269.896M -2.845M
          new-comp:11000:Help.....................00:00.000 00:00.692 269.896M 0
          new-comp:8000:Label.....................00:00.016 00:00.708 264.203M -5.692M
          new-comp:23000:Tooltip..................00:00.000 00:00.708 255.664M -8.539M
          new-comp:7000:Disclosure................00:00.000 00:00.708 254.241M -1.422M
          new-comp:7000:GroupValidationMessages...00:00.000 00:00.708 254.241M 0
          new-comp:7000:FieldValidationMessages...00:00.015 00:00.723 252.817M -1.422M
          new-comp:7000:InputField................00:00.000 00:00.723 252.817M 0
          new-comp:7000:Group.....................00:00.000 00:00.723 248.547M -4.269M
          new-comp:24000:Tooltip..................00:00.000 00:00.723 242.855M -5.692M
          new-comp:12000:Help.....................00:00.000 00:00.723 242.855M 0
          new-comp:5000:Header....................00:00.016 00:00.739 234.316M -8.539M
          new-comp:9000:Message...................00:00.000 00:00.739 234.316M 0
          new-comp:7000:TextAreaControl...........00:00.000 00:00.739 232.893M -1.422M
          new-comp:25000:Tooltip..................00:00.000 00:00.739 228.624M -4.268M
          new-comp:9000:Label.....................00:00.000 00:00.739 225.777M -2.845M
          new-comp:26000:Tooltip..................00:00.015 00:00.754 387.073M 161.295M
          new-comp:13000:Help.....................00:00.000 00:00.754 387.073M 0
          new-comp:8000:Disclosure................00:00.016 00:00.770 380.384M -6.688M
          new-comp:8000:GroupValidationMessages...00:00.000 00:00.770 380.384M 0
          new-comp:8000:FieldValidationMessages...00:00.000 00:00.770 380.384M 0
          new-comp:8000:InputField................00:00.000 00:00.770 380.384M 0
          new-comp:1000:Action....................00:00.000 00:00.770 378.155M -2.229M
          new-comp:8000:Group.....................00:00.000 00:00.770 375.924M -2.229M
          new-comp:27000:Tooltip..................00:00.000 00:00.770 373.695M -2.229M
          new-comp:10000:Message..................00:00.016 00:00.786 369.236M -4.458M
          new-comp:28000:Tooltip..................00:00.000 00:00.786 360.317M -8.917M
          new-comp:14000:Help.....................00:00.000 00:00.786 360.317M 0
          new-comp:10000:Label....................00:00.015 00:00.801 358.087M -2.229M
          new-comp:8000:TextAreaControl...........00:00.000 00:00.801 358.087M 0
          new-comp:29000:Tooltip..................00:00.016 00:00.817 346.939M -11.147M
          new-comp:6000:Header....................00:00.000 00:00.817 340.250M -6.688M
          new-comp:9000:Disclosure................00:00.000 00:00.817 335.791M -4.458M
          new-comp:9000:GroupValidationMessages...00:00.000 00:00.817 335.791M 0
          new-comp:9000:FieldValidationMessages...00:00.000 00:00.817 335.791M 0
          new-comp:9000:InputField................00:00.000 00:00.817 333.561M -2.229M
          new-comp:30000:Tooltip..................00:00.000 00:00.817 333.561M 0
          new-comp:15000:Help.....................00:00.000 00:00.817 333.561M 0
          new-comp:11000:Message..................00:00.000 00:00.817 331.332M -2.229M
          new-comp:9000:Group.....................00:00.000 00:00.817 329.102M -2.229M
          new-comp:31000:Tooltip..................00:00.016 00:00.833 320.183M -8.917M
          new-comp:11000:Label....................00:00.000 00:00.833 320.183M 0
          new-comp:9000:TextAreaControl...........00:00.015 00:00.848 309.036M -11.147M
          new-comp:32000:Tooltip..................00:00.000 00:00.848 306.806M -2.229M
          new-comp:16000:Help.....................00:00.000 00:00.848 306.806M 0
          new-comp:33000:Tooltip..................00:00.016 00:00.864 293.427M -13.377M
          new-comp:12000:Message..................00:00.000 00:00.864 291.198M -2.229M
          new-comp:10000:FieldValidationMessages..00:00.000 00:00.864 288.968M -2.229M
          new-comp:10000:Disclosure...............00:00.000 00:00.864 288.968M 0
          new-comp:10000:GroupValidationMessages..00:00.000 00:00.864 288.968M 0
          new-comp:10000:InputField...............00:00.000 00:00.864 288.968M 0
          new-comp:10000:Group....................00:00.000 00:00.864 282.279M -6.688M
          new-comp:12000:Label....................00:00.015 00:00.879 282.279M 0
          new-comp:34000:Tooltip..................00:00.000 00:00.879 280.049M -2.229M
          new-comp:17000:Help.....................00:00.000 00:00.879 280.049M 0
          new-comp:7000:Header....................00:00.000 00:00.879 273.361M -6.688M
          new-comp:35000:Tooltip..................00:00.000 00:00.879 266.671M -6.688M
          new-comp:10000:TextAreaControl..........00:00.000 00:00.879 262.212M -4.458M
          new-comp:13000:Message..................00:00.016 00:00.895 253.293M -8.917M
          new-comp:36000:Tooltip..................00:00.000 00:00.895 253.293M 0
          new-comp:18000:Help.....................00:00.000 00:00.895 253.293M 0
          new-comp:11000:FieldValidationMessages..00:00.000 00:00.895 244.375M -8.918M
          new-comp:11000:InputField...............00:00.000 00:00.895 244.375M 0
          new-comp:11000:Disclosure...............00:00.000 00:00.895 244.375M 0
          new-comp:11000:GroupValidationMessages..00:00.000 00:00.895 244.375M 0
          new-comp:13000:Label....................00:00.000 00:00.895 242.145M -2.229M
          new-comp:37000:Tooltip..................00:00.016 00:00.911 239.915M -2.229M
          new-comp:11000:Group....................00:00.000 00:00.911 237.685M -2.229M
          new-comp:38000:Tooltip..................00:00.000 00:00.911 226.537M -11.148M
          new-comp:19000:Help.....................00:00.000 00:00.911 226.537M 0
          new-comp:14000:Message..................00:00.000 00:00.911 215.388M -11.147M
          new-comp:11000:TextAreaControl..........00:00.015 00:00.926 215.388M 0
          new-comp:39000:Tooltip..................00:00.000 00:00.926 392.500M 177.112M
          new-comp:8000:Header....................00:00.016 00:00.942 387.042M -5.458M
          new-comp:14000:Label....................00:00.000 00:00.942 384.314M -2.728M
          new-comp:12000:FieldValidationMessages..00:00.000 00:00.942 378.856M -5.458M
          new-comp:12000:InputField...............00:00.000 00:00.942 378.856M 0
          new-comp:40000:Tooltip..................00:00.000 00:00.942 378.856M 0
          new-comp:12000:Disclosure...............00:00.000 00:00.942 378.856M 0
          new-comp:12000:GroupValidationMessages..00:00.000 00:00.942 378.856M 0
          new-comp:20000:Help.....................00:00.000 00:00.942 378.856M 0
          new-comp:12000:Group....................00:00.000 00:00.942 370.668M -8.186M
          new-comp:41000:Tooltip..................00:00.016 00:00.958 365.210M -5.458M
          new-comp:15000:Message..................00:00.000 00:00.958 357.023M -8.186M
          new-comp:42000:Tooltip..................00:00.000 00:00.958 351.565M -5.458M
          new-comp:21000:Help.....................00:00.000 00:00.958 351.565M 0
          new-comp:12000:TextAreaControl..........00:00.015 00:00.973 348.835M -2.728M
          new-comp:15000:Label....................00:00.000 00:00.973 346.107M -2.728M
          new-comp:43000:Tooltip..................00:00.000 00:00.973 337.919M -8.186M
          new-comp:13000:FieldValidationMessages..00:00.000 00:00.973 335.190M -2.728M
          new-comp:13000:InputField...............00:00.000 00:00.973 335.190M 0
          new-comp:13000:Disclosure...............00:00.000 00:00.973 332.460M -2.728M
          new-comp:13000:GroupValidationMessages..00:00.000 00:00.973 332.460M 0
          new-comp:13000:Group....................00:00.016 00:00.989 324.274M -8.186M
          new-comp:44000:Tooltip..................00:00.000 00:00.989 324.274M 0
          new-comp:22000:Help.....................00:00.000 00:00.989 324.274M 0
          new-comp:16000:Message..................00:00.000 00:00.989 321.544M -2.728M
          new-comp:9000:Header....................00:00.000 00:00.989 318.815M -2.728M
          new-comp:45000:Tooltip..................00:00.015 00:01.004 310.627M -8.186M
          new-comp:16000:Label....................00:00.016 00:01.020 307.899M -2.728M
          new-comp:13000:TextAreaControl..........00:00.000 00:01.020 299.711M -8.186M
          new-comp:46000:Tooltip..................00:00.000 00:01.020 296.983M -2.728M
          new-comp:23000:Help.....................00:00.000 00:01.020 296.983M 0
          new-comp:14000:FieldValidationMessages..00:00.016 00:01.036 288.795M -8.186M
          new-comp:14000:InputField...............00:00.000 00:01.036 288.795M 0
          new-comp:14000:Disclosure...............00:00.000 00:01.036 288.795M 0
          new-comp:14000:GroupValidationMessages..00:00.000 00:01.036 288.795M 0
          new-comp:47000:Tooltip..................00:00.000 00:01.036 286.066M -2.728M
          new-comp:17000:Message..................00:00.000 00:01.036 283.337M -2.728M
          new-comp:14000:Group....................00:00.000 00:01.036 280.608M -2.728M
          new-comp:48000:Tooltip..................00:00.015 00:01.051 272.421M -8.186M
          new-comp:24000:Help.....................00:00.000 00:01.051 269.692M -2.728M
          new-comp:17000:Label....................00:00.000 00:01.051 266.962M -2.728M
          new-comp:49000:Tooltip..................00:00.000 00:01.051 258.775M -8.186M
          new-comp:14000:TextAreaControl..........00:00.016 00:01.067 253.317M -5.458M
          new-comp:10000:Header...................00:00.000 00:01.067 250.588M -2.728M
          new-comp:15000:FieldValidationMessages..00:00.000 00:01.067 245.130M -5.458M
          new-comp:15000:InputField...............00:00.000 00:01.067 245.130M 0
          new-comp:50000:Tooltip..................00:00.000 00:01.067 245.130M 0
          new-comp:18000:Message..................00:00.000 00:01.067 245.130M 0
          new-comp:25000:Help.....................00:00.000 00:01.067 242.401M -2.728M
          new-comp:15000:Disclosure...............00:00.000 00:01.067 242.401M 0
          new-comp:15000:GroupValidationMessages..00:00.000 00:01.067 242.401M 0
          new-comp:15000:Group....................00:00.000 00:01.067 234.213M -8.186M
          new-comp:51000:Tooltip..................00:00.000 00:01.067 231.485M -2.728M
          new-comp:18000:Label....................00:00.016 00:01.083 228.755M -2.728M
          new-comp:52000:Tooltip..................00:00.000 00:01.083 217.839M -10.916M
          new-comp:26000:Help.....................00:00.000 00:01.083 215.110M -2.728M
          new-comp:19000:Message..................00:00.015 00:01.098 381.037M 165.925M
          new-comp:15000:TextAreaControl..........00:00.000 00:01.098 381.037M 0
          new-comp:53000:Tooltip..................00:00.000 00:01.098 381.037M 0
          new-comp:16000:FieldValidationMessages..00:00.000 00:01.098 377.884M -3.152M
          new-comp:16000:InputField...............00:00.000 00:01.098 374.731M -3.152M
          new-comp:16000:Disclosure...............00:00.016 00:01.114 371.578M -3.152M
          new-comp:16000:GroupValidationMessages..00:00.000 00:01.114 371.578M 0
          new-comp:19000:Label....................00:00.000 00:01.114 368.425M -3.152M
          new-comp:54000:Tooltip..................00:00.000 00:01.114 365.272M -3.152M
          new-comp:27000:Help.....................00:00.000 00:01.114 365.272M 0
          new-comp:16000:Group....................00:00.000 00:01.114 362.120M -3.152M
          new-comp:11000:Header...................00:00.000 00:01.114 362.120M 0
          new-comp:55000:Tooltip..................00:00.000 00:01.114 352.661M -9.458M
          new-comp:20000:Message..................00:00.015 00:01.129 343.203M -9.458M
          new-comp:56000:Tooltip..................00:00.000 00:01.129 340.049M -3.152M
          new-comp:1000:Link......................00:00.000 00:01.129 340.049M 0
          new-comp:28000:Help.....................00:00.000 00:01.129 336.897M -3.152M
          new-comp:1000:LinkField.................00:00.000 00:01.129 336.897M 0
          new-comp:16000:TextAreaControl..........00:00.000 00:01.129 333.744M -3.152M
          new-comp:17000:FieldValidationMessages..00:00.000 00:01.129 330.590M -3.152M
          new-comp:17000:InputField...............00:00.000 00:01.129 330.590M 0
          new-comp:20000:Label....................00:00.000 00:01.129 327.438M -3.152M
          new-comp:17000:Disclosure...............00:00.000 00:01.129 327.438M 0
          new-comp:17000:GroupValidationMessages..00:00.000 00:01.129 327.438M 0
          new-comp:57000:Tooltip..................00:00.000 00:01.129 327.438M 0
          new-comp:17000:Group....................00:00.016 00:01.145 317.979M -9.458M
          new-comp:58000:Tooltip..................00:00.000 00:01.145 311.673M -6.305M
          new-comp:29000:Help.....................00:00.000 00:01.145 311.673M 0
          new-comp:21000:Message..................00:00.000 00:01.145 305.368M -6.305M
          new-comp:59000:Tooltip..................00:00.016 00:01.161 299.062M -6.305M
          new-comp:1000:FieldGroup................00:00.000 00:01.161 295.910M -3.152M
          new-comp:12000:Header...................00:00.000 00:01.161 292.756M -3.152M
          new-comp:21000:Label....................00:00.000 00:01.161 289.603M -3.152M
          new-comp:17000:TextAreaControl..........00:00.000 00:01.161 286.451M -3.152M
          new-comp:18000:FieldValidationMessages..00:00.000 00:01.161 286.451M 0
          new-comp:18000:InputField...............00:00.000 00:01.161 286.451M 0
          new-comp:60000:Tooltip..................00:00.000 00:01.161 286.451M 0
          new-comp:30000:Help.....................00:00.000 00:01.161 283.297M -3.152M
          new-comp:18000:Disclosure...............00:00.000 00:01.161 283.297M 0
          new-comp:18000:GroupValidationMessages..00:00.000 00:01.161 280.145M -3.152M
          new-comp:2000:Action....................00:00.015 00:01.176 280.145M 0
          new-comp:61000:Tooltip..................00:00.000 00:01.176 270.686M -9.458M
          new-comp:18000:Group....................00:00.000 00:01.176 270.686M 0
          new-comp:22000:Message..................00:00.000 00:01.176 267.533M -3.152M
          new-comp:62000:Tooltip..................00:00.000 00:01.176 258.075M -9.458M
          new-comp:31000:Help.....................00:00.000 00:01.176 258.075M 0
          new-comp:22000:Label....................00:00.016 00:01.192 251.768M -6.305M
          new-comp:63000:Tooltip..................00:00.000 00:01.192 245.462M -6.305M
          new-comp:19000:FieldValidationMessages..00:00.000 00:01.192 242.310M -3.152M
          new-comp:19000:InputField...............00:00.000 00:01.192 242.310M 0
          new-comp:18000:TextAreaControl..........00:00.000 00:01.192 239.157M -3.152M
          new-comp:19000:Disclosure...............00:00.000 00:01.192 236.003M -3.152M
          new-comp:19000:GroupValidationMessages..00:00.000 00:01.192 236.003M 0
          new-comp:64000:Tooltip..................00:00.000 00:01.192 232.851M -3.152M
          new-comp:23000:Message..................00:00.016 00:01.208 229.698M -3.152M
          new-comp:32000:Help.....................00:00.000 00:01.208 229.698M 0
          new-comp:13000:Header...................00:00.000 00:01.208 226.545M -3.152M
          new-comp:19000:Group....................00:00.000 00:01.208 226.545M 0
          new-comp:65000:Tooltip..................00:00.000 00:01.208 217.086M -9.458M
          new-comp:23000:Label....................00:00.000 00:01.208 213.933M -3.152M
          new-comp:66000:Tooltip..................00:00.015 00:01.223 204.475M -9.458M
          new-comp:33000:Help.....................00:00.000 00:01.223 203.496M -1002.484k
          new-comp:20000:FieldValidationMessages..00:00.016 00:01.239 383.436M 179.939M
          new-comp:20000:InputField...............00:00.000 00:01.239 383.436M 0
          new-comp:24000:Message..................00:00.000 00:01.239 380.062M -3.373M
          new-comp:19000:TextAreaControl..........00:00.000 00:01.239 376.689M -3.373M
          new-comp:67000:Tooltip..................00:00.000 00:01.239 376.689M 0
          new-comp:20000:Disclosure...............00:00.000 00:01.239 376.689M 0
          new-comp:20000:GroupValidationMessages..00:00.000 00:01.239 376.689M 0
          new-comp:20000:Group....................00:00.000 00:01.239 366.568M -10.121M
          new-comp:68000:Tooltip..................00:00.000 00:01.239 363.194M -3.373M
          new-comp:34000:Help.....................00:00.000 00:01.239 363.194M 0
          new-comp:24000:Label....................00:00.015 00:01.254 359.821M -3.373M
          new-comp:69000:Tooltip..................00:00.000 00:01.254 349.700M -10.120M
          new-comp:14000:Header...................00:00.000 00:01.254 346.326M -3.373M
          new-comp:25000:Message..................00:00.000 00:01.254 339.579M -6.747M
          new-comp:21000:FieldValidationMessages..00:00.000 00:01.254 339.579M 0
          new-comp:21000:InputField...............00:00.000 00:01.254 336.205M -3.373M
          new-comp:70000:Tooltip..................00:00.016 00:01.270 336.205M 0
          new-comp:35000:Help.....................00:00.000 00:01.270 336.205M 0
          new-comp:21000:Disclosure...............00:00.000 00:01.270 332.832M -3.373M
          new-comp:21000:GroupValidationMessages..00:00.000 00:01.270 332.832M 0
          new-comp:20000:TextAreaControl..........00:00.000 00:01.270 329.458M -3.373M
          new-comp:71000:Tooltip..................00:00.000 00:01.270 322.710M -6.747M
          new-comp:25000:Label....................00:00.000 00:01.270 322.710M 0
          new-comp:21000:Group....................00:00.000 00:01.270 319.336M -3.373M
          new-comp:72000:Tooltip..................00:00.016 00:01.286 309.216M -10.120M
          new-comp:36000:Help.....................00:00.000 00:01.286 309.216M 0
          new-comp:26000:Message..................00:00.000 00:01.286 302.469M -6.747M
          new-comp:73000:Tooltip..................00:00.000 00:01.286 295.722M -6.747M
          new-comp:22000:FieldValidationMessages..00:00.000 00:01.286 292.348M -3.373M
          new-comp:22000:InputField...............00:00.000 00:01.286 292.348M 0
          new-comp:22000:Disclosure...............00:00.015 00:01.301 285.601M -6.747M
          new-comp:22000:GroupValidationMessages..00:00.000 00:01.301 285.601M 0
          new-comp:21000:TextAreaControl..........00:00.000 00:01.301 282.227M -3.373M
          new-comp:74000:Tooltip..................00:00.000 00:01.301 282.227M 0
          new-comp:26000:Label....................00:00.000 00:01.301 282.227M 0
          new-comp:37000:Help.....................00:00.000 00:01.301 282.227M 0
          new-comp:15000:Header...................00:00.000 00:01.301 278.854M -3.373M
          new-comp:22000:Group....................00:00.016 00:01.317 272.107M -6.747M
          new-comp:75000:Tooltip..................00:00.000 00:01.317 265.359M -6.747M
          new-comp:27000:Message..................00:00.031 00:01.348 258.612M -6.747M
          new-comp:76000:Tooltip..................00:00.016 00:01.364 245.118M -13.494M
          new-comp:38000:Help.....................00:00.000 00:01.364 241.745M -3.373M
          new-comp:23000:FieldValidationMessages..00:00.031 00:01.395 231.624M -10.120M
          new-comp:23000:InputField...............00:00.000 00:01.395 231.624M 0
          new-comp:27000:Label....................00:00.031 00:01.426 221.503M -10.120M
          new-comp:77000:Tooltip..................00:00.000 00:01.426 221.503M 0
          new-comp:23000:Disclosure...............00:00.000 00:01.426 218.129M -3.373M
          new-comp:23000:GroupValidationMessages..00:00.000 00:01.426 218.129M 0
          new-comp:22000:TextAreaControl..........00:00.016 00:01.442 211.382M -6.747M
          new-comp:78000:Tooltip..................00:00.062 00:01.504 374.845M 163.462M
          new-comp:23000:Group....................00:00.000 00:01.504 374.845M 0
          new-comp:39000:Help.....................00:00.000 00:01.504 371.157M -3.688M
          new-comp:28000:Message..................00:00.000 00:01.504 371.157M 0
          new-comp:3000:Action....................00:00.032 00:01.536 360.088M -11.067M
          new-comp:79000:Tooltip..................00:00.015 00:01.551 356.400M -3.688M
          new-comp:16000:Header...................00:00.016 00:01.567 349.021M -7.377M
          new-comp:28000:Label....................00:00.031 00:01.598 337.954M -11.067M
          new-comp:24000:FieldValidationMessages..00:00.000 00:01.598 334.265M -3.688M
          new-comp:24000:InputField...............00:00.000 00:01.598 334.265M 0
          new-comp:80000:Tooltip..................00:00.000 00:01.598 334.265M 0
          new-comp:1000:Image.....................00:00.000 00:01.598 330.576M -3.688M
          new-comp:40000:Help.....................00:00.016 00:01.614 326.886M -3.688M
          new-comp:24000:Disclosure...............00:00.015 00:01.629 319.508M -7.377M
          new-comp:24000:GroupValidationMessages..00:00.000 00:01.629 319.508M 0
          new-comp:23000:TextAreaControl..........00:00.016 00:01.645 312.130M -7.377M
          new-comp:81000:Tooltip..................00:00.000 00:01.645 312.130M 0
          new-comp:1000:LightBox..................00:00.016 00:01.661 304.751M -7.377M
          new-comp:29000:Message..................00:00.000 00:01.661 304.751M 0
          new-comp:24000:Group....................00:00.015 00:01.676 301.063M -3.688M
          new-comp:82000:Tooltip..................00:00.032 00:01.708 289.996M -11.067M
          new-comp:41000:Help.....................00:00.000 00:01.708 286.306M -3.688M
          new-comp:29000:Label....................00:00.031 00:01.739 275.239M -11.067M
          new-comp:2000:Link......................00:00.000 00:01.739 271.549M -3.688M
          new-comp:83000:Tooltip..................00:00.015 00:01.754 267.860M -3.688M
          new-comp:25000:FieldValidationMessages..00:00.000 00:01.754 264.170M -3.688M
          new-comp:25000:InputField...............00:00.000 00:01.754 264.170M 0
          new-comp:84000:Tooltip..................00:00.063 00:01.817 245.725M -18.445M
          new-comp:25000:Disclosure...............00:00.000 00:01.817 242.036M -3.688M
          new-comp:25000:GroupValidationMessages..00:00.000 00:01.817 242.036M 0
          new-comp:42000:Help.....................00:00.000 00:01.817 242.036M 0
          new-comp:30000:Message..................00:00.000 00:01.817 242.036M 0
          new-comp:17000:Header...................00:00.000 00:01.817 242.036M 0
          new-comp:24000:TextAreaControl..........00:00.000 00:01.817 242.036M 0
          new-comp:25000:Group....................00:00.031 00:01.848 227.279M -14.755M
          new-comp:85000:Tooltip..................00:00.000 00:01.848 227.279M 0
          new-comp:4000:Action....................00:00.031 00:01.879 212.522M -14.756M
          new-comp:2000:Image.....................00:00.000 00:01.879 212.522M 0
          new-comp:30000:Label....................00:00.016 00:01.895 208.833M -3.688M
          new-comp:86000:Tooltip..................00:00.000 00:01.895 205.144M -3.688M
          new-comp:43000:Help.....................00:00.000 00:01.895 201.455M -3.688M
          new-comp:26000:FieldValidationMessages..00:00.016 00:01.911 190.387M -11.066M
          new-comp:26000:InputField...............00:00.000 00:01.911 190.387M 0
          new-comp:87000:Tooltip..................00:00.015 00:01.926 183.009M -7.377M
          new-comp:31000:Message..................00:00.063 00:01.989 356.140M 173.130M
          new-comp:26000:Disclosure...............00:00.031 00:02.020 348.556M -7.583M
          new-comp:26000:GroupValidationMessages..00:00.000 00:02.020 348.556M 0
          new-comp:25000:TextAreaControl..........00:00.000 00:02.020 344.763M -3.791M
          new-comp:2000:LightBox..................00:00.016 00:02.036 340.971M -3.791M
          new-comp:88000:Tooltip..................00:00.000 00:02.036 337.178M -3.791M
          new-comp:44000:Help.....................00:00.000 00:02.036 333.386M -3.791M
          new-comp:26000:Group....................00:00.015 00:02.051 325.801M -7.583M
          new-comp:31000:Label....................00:00.016 00:02.067 322.008M -3.791M
          new-comp:89000:Tooltip..................00:00.016 00:02.083 314.424M -7.583M
          new-comp:18000:Header...................00:00.000 00:02.083 310.631M -3.791M
          new-comp:27000:FieldValidationMessages..00:00.031 00:02.114 295.461M -15.168M
          new-comp:27000:InputField...............00:00.000 00:02.114 295.461M 0
          new-comp:90000:Tooltip..................00:00.000 00:02.114 295.461M 0
          new-comp:32000:Message..................00:00.000 00:02.114 295.461M 0
          new-comp:45000:Help.....................00:00.032 00:02.146 291.669M -3.791M
          new-comp:1000:TextControl...............00:00.002 00:02.148 287.876M -3.791M
          new-comp:27000:Disclosure...............00:00.019 00:02.167 272.708M -15.168M
          new-comp:27000:GroupValidationMessages..00:00.001 00:02.168 272.708M 0
          new-comp:91000:Tooltip..................00:00.000 00:02.168 272.708M 0
          new-comp:3000:Image.....................00:00.014 00:02.182 268.915M -3.791M
          new-comp:26000:TextAreaControl..........00:00.002 00:02.184 268.915M 0
          new-comp:32000:Label....................00:00.008 00:02.192 261.330M -7.583M
          new-comp:27000:Group....................00:00.021 00:02.213 253.745M -7.583M
          new-comp:92000:Tooltip..................00:00.002 00:02.215 249.953M -3.791M
          new-comp:46000:Help.....................00:00.004 00:02.219 249.953M 0
          new-comp:5000:Action....................00:00.006 00:02.225 246.160M -3.791M
          new-comp:33000:Message..................00:00.030 00:02.255 230.990M -15.168M
          new-comp:93000:Tooltip..................00:00.001 00:02.256 230.990M 0
          new-comp:28000:FieldValidationMessages..00:00.005 00:02.261 223.406M -7.583M
          new-comp:28000:InputField...............00:00.001 00:02.262 223.406M 0
          new-comp:94000:Tooltip..................00:00.029 00:02.291 208.236M -15.168M
          new-comp:47000:Help.....................00:00.002 00:02.293 204.443M -3.791M
          new-comp:19000:Header...................00:00.001 00:02.294 204.443M 0
          new-comp:28000:Disclosure...............00:00.002 00:02.296 200.650M -3.791M
          new-comp:28000:GroupValidationMessages..00:00.001 00:02.297 200.650M 0
          new-comp:3000:LightBox..................00:00.010 00:02.307 196.858M -3.791M
          new-comp:33000:Label....................00:00.007 00:02.314 196.858M 0
          new-comp:27000:TextAreaControl..........00:00.002 00:02.316 193.066M -3.791M
          new-comp:3000:Link......................00:00.009 00:02.325 189.273M -3.791M
          new-comp:95000:Tooltip..................00:00.012 00:02.337 185.481M -3.791M
          new-comp:28000:Group....................00:00.006 00:02.343 181.688M -3.791M
          new-comp:34000:Message..................00:00.026 00:02.369 166.518M -15.168M
          new-comp:96000:Tooltip..................00:00.002 00:02.371 166.518M 0
          new-comp:48000:Help.....................00:00.088 00:02.459 336.167M 169.648M
          new-comp:29000:FieldValidationMessages..00:00.009 00:02.468 327.950M -8.217M
          new-comp:29000:InputField...............00:00.001 00:02.469 327.950M 0
          new-comp:97000:Tooltip..................00:00.023 00:02.492 319.732M -8.216M
          new-comp:4000:Image.....................00:00.015 00:02.507 315.624M -4.108M
          new-comp:34000:Label....................00:00.014 00:02.521 311.515M -4.108M
          new-comp:1000:Inquiry...................00:00.012 00:02.533 303.297M -8.216M
          new-comp:1000:QuickFinder...............00:00.000 00:02.533 303.297M 0
          new-comp:29000:Disclosure...............00:00.006 00:02.539 299.188M -4.108M
          new-comp:29000:GroupValidationMessages..00:00.000 00:02.539 299.188M 0
          new-comp:98000:Tooltip..................00:00.002 00:02.541 299.188M 0
          new-comp:28000:TextAreaControl..........00:00.000 00:02.541 299.188M 0
          new-comp:49000:Help.....................00:00.002 00:02.543 295.080M -4.108M
          new-comp:29000:Group....................00:00.022 00:02.565 282.752M -12.326M
          new-comp:35000:Message..................00:00.001 00:02.566 282.752M 0
          new-comp:6000:Action....................00:00.011 00:02.577 278.644M -4.108M
          new-comp:99000:Tooltip..................00:00.007 00:02.584 274.535M -4.108M
          new-comp:20000:Header...................00:00.002 00:02.586 270.426M -4.108M
          new-comp:30000:FieldValidationMessages..00:00.019 00:02.605 258.099M -12.326M
          new-comp:30000:InputField...............00:00.013 00:02.618 253.991M -4.108M
          new-comp:100000:Tooltip.................00:00.001 00:02.619 253.991M 0
          new-comp:50000:Help.....................00:00.003 00:02.622 249.881M -4.108M
          new-comp:35000:Label....................00:00.004 00:02.626 249.881M 0
          new-comp:101000:Tooltip.................00:00.027 00:02.653 233.446M -16.434M
          new-comp:4000:LightBox..................00:00.008 00:02.661 233.446M 0
          new-comp:30000:Disclosure...............00:00.012 00:02.673 229.337M -4.108M
          new-comp:30000:GroupValidationMessages..00:00.001 00:02.674 225.228M -4.108M
          new-comp:29000:TextAreaControl..........00:00.004 00:02.678 225.228M 0
          new-comp:36000:Message..................00:00.016 00:02.694 217.010M -8.216M
          new-comp:102000:Tooltip.................00:00.003 00:02.697 212.902M -4.108M
          apply-model-end:TransactionView.........00:00.011 00:02.708 208.792M -4.108M
          perform-lifecycle-after-model:Transactio00:00.000 00:02.708 208.792M 0
          perform-lifecycle-model-reindex:Transact00:00.011 00:02.719 204.684M -4.108M
          perform-lifecycle-finalize:TransactionVi00:00.717 00:03.436 285.164M 80.478M
          perform-lifecycle-final-reindex:Transact00:00.016 00:03.452 281.026M -4.136M
          perform-lifecycle-final:TransactionView.00:00.000 00:03.452 281.026M 0
          validate-view:TransactionView...........00:00.000 00:03.452 281.026M 0
          post-handle.............................00:00.000 00:03.452 281.026M 0
          after-completion........................00:00.125 00:03.577 272.750M -8.274M
          after-completion-end....................00:00.047 00:03.624 272.750M 0
          Processing Complete.....................00:00.000 00:03.624 272.750M 0
          Monitors:
            new-comp:6512:Action
            new-comp:6:BlockUI
            new-comp:13:BreadcrumbItem
            new-comp:3:Breadcrumbs
            new-comp:246:CheckboxControl
            new-comp:242:CollectionGroup
            new-comp:30255:Disclosure
            new-comp:1753:FieldGroup
            new-comp:30661:FieldValidationMessages
            new-comp:2:FormView
            new-comp:29987:Group
            new-comp:30251:GroupValidationMessages
            new-comp:3:Growls
            new-comp:20574:Header
            new-comp:50990:Help
            new-comp:4925:Image
            new-comp:30654:InputField
            new-comp:1202:Inquiry
            new-comp:35615:Label
            new-comp:4207:LightBox
            new-comp:3630:Link
            new-comp:1826:LinkField
            new-comp:36750:Message
            new-comp:240:MessageField
            new-comp:3:PageGroup
            new-comp:4:PageValidationMessages
            new-comp:244:Pager
            new-comp:1202:QuickFinder
            new-comp:244:RichTable
            new-comp:913:Suggest
            new-comp:29189:TextAreaControl
            new-comp:1108:TextControl
            new-comp:102143:Tooltip
            new-comp:3:ViewHeader
          Counters:
            bean-property-read: 8828 (00:00.000/00:00.016/00:00.000)
              longest : LinkField:fieldLabel
            bean-property-write: 24566 (00:00.000/00:00.016/00:00.000)
              longest : Disclosure:expandImageSrc
          Elapsed Time: 00:03.624
          Memory Usage: 272.750M/769.062M/910.250M - 35% free
          Memory Delta: 17.321M/769.062M/910.250M - 2% free - tot delta: 23.812M
          

          Next pass at reducing object creation will target per-transaction use of componentsForLifecycle and other dynamic collections. A third pass will aim for reusing components where possible.

          Show
          Mark Fyffe (Inactive) added a comment - Committed one pass at reducing object construction by deferring initialization of ComponentBase collection fields until needed. Also committed instance counter for ComponentBase indicated in last comment. Below is a process trace for TransactionView, which was noticeably improved by this pass. Excessive object creation on components can be seen in this trace, however with related collections, overhead is reduced enough to see a 3-4s reduction in overall processing time at the apply model phase. 2013-09-08 12:07:34,794 [http-8080-4] u:/d: INFO org.kuali.rice.krad.uif.util.P rocessLogger - KRAD Process Trace (request): Servlet Request /kr-krad/transactio n at org.kuali.rice.krad.uif.util.ProcessLoggingFilter.doFilter(ProcessLoggingFilter.java:69) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) Initial Memory Usage: 255.429M/745.250M/910.250M - 34% free pre-handle..............................00:00.000 00:00.000 255.209M -224.781k new-comp:1000:Tooltip...................00:00.239 00:00.239 384.375M 129.165M build-view:TransactionView..............00:00.031 00:00.270 373.541M -10.834M build-view-params:TransactionView.......00:00.000 00:00.270 373.541M 0 build-view-backup-params:TransactionView00:00.000 00:00.270 373.541M 0 perform-lifecycle:TransactionView.......00:00.000 00:00.270 373.541M 0 new-comp:1000:Help......................00:00.000 00:00.270 371.374M -2.166M new-comp:2000:Tooltip...................00:00.000 00:00.270 371.374M 0 new-comp:1000:Message...................00:00.016 00:00.286 364.563M -6.810M new-comp:1000:Label.....................00:00.000 00:00.286 362.706M -1.856M new-comp:3000:Tooltip...................00:00.015 00:00.301 357.442M -5.262M new-comp:1000:Disclosure................00:00.000 00:00.301 355.894M -1.546M new-comp:1000:GroupValidationMessages...00:00.000 00:00.301 355.584M -316.984k new-comp:1000:Group.....................00:00.000 00:00.301 354.657M -950.937k new-comp:1000:InputField................00:00.016 00:00.317 353.417M -1.238M new-comp:1000:FieldValidationMessages...00:00.000 00:00.317 353.417M 0 new-comp:1000:TextAreaControl...........00:00.000 00:00.317 349.083M -4.333M new-comp:2000:Help......................00:00.016 00:00.333 344.130M -4.953M new-comp:4000:Tooltip...................00:00.000 00:00.333 343.821M -317.015k new-comp:1000:Header....................00:00.015 00:00.348 332.055M -11.765M new-comp:2000:Message...................00:00.000 00:00.348 329.578M -2.476M new-comp:5000:Tooltip...................00:00.000 00:00.348 329.578M 0 new-comp:2000:Label.....................00:00.000 00:00.348 325.863M -3.714M new-comp:3000:Help......................00:00.016 00:00.364 316.885M -8.976M new-comp:6000:Tooltip...................00:00.000 00:00.364 315.957M -950.945k new-comp:2000:Disclosure................00:00.000 00:00.364 311.623M -4.333M new-comp:2000:GroupValidationMessages...00:00.000 00:00.364 311.623M 0 new-comp:2000:Group.....................00:00.000 00:00.364 309.765M -1.856M new-comp:2000:FieldValidationMessages...00:00.015 00:00.379 308.217M -1.546M new-comp:2000:InputField................00:00.000 00:00.379 307.908M -316.968k new-comp:7000:Tooltip...................00:00.000 00:00.379 302.026M -5.881M apply-model:TransactionView.............00:00.032 00:00.411 298.620M -3.405M apply-comp-model:TransactionView........00:00.000 00:00.411 298.310M -317.015k new-comp:2000:TextAreaControl...........00:00.031 00:00.442 295.797M -2.512M new-comp:3000:Message...................00:00.016 00:00.458 288.677M -7.120M new-comp:4000:Help......................00:00.000 00:00.458 285.581M -3.095M new-comp:8000:Tooltip...................00:00.000 00:00.458 284.961M -634.257k new-comp:3000:Label.....................00:00.000 00:00.458 283.723M -1.238M new-comp:9000:Tooltip...................00:00.015 00:00.473 271.649M -12.073M new-comp:3000:Disclosure................00:00.016 00:00.489 262.672M -8.976M new-comp:3000:GroupValidationMessages...00:00.000 00:00.489 262.672M 0 new-comp:2000:Header....................00:00.000 00:00.489 261.743M -951.164k new-comp:3000:Group.....................00:00.015 00:00.504 259.266M -2.476M new-comp:3000:FieldValidationMessages...00:00.000 00:00.504 258.647M -634.031k new-comp:3000:InputField................00:00.000 00:00.504 258.337M -317.015k new-comp:5000:Help......................00:00.000 00:00.504 258.337M 0 new-comp:10000:Tooltip..................00:00.000 00:00.504 258.028M -317.015k new-comp:4000:Message...................00:00.000 00:00.504 250.908M -7.120M new-comp:3000:TextAreaControl...........00:00.016 00:00.520 248.741M -2.166M new-comp:4000:Label.....................00:00.000 00:00.520 245.026M -3.713M new-comp:11000:Tooltip..................00:00.000 00:00.520 244.716M -317.015k new-comp:6000:Help......................00:00.016 00:00.536 231.405M -13.311M new-comp:12000:Tooltip..................00:00.000 00:00.536 231.095M -317.015k new-comp:13000:Tooltip..................00:00.047 00:00.583 390.868M 159.771M new-comp:4000:Disclosure................00:00.000 00:00.583 390.868M 0 new-comp:4000:GroupValidationMessages...00:00.000 00:00.583 390.868M 0 new-comp:4000:FieldValidationMessages...00:00.000 00:00.583 386.598M -4.269M new-comp:4000:InputField................00:00.000 00:00.583 386.598M 0 new-comp:4000:Group.....................00:00.000 00:00.583 386.598M 0 new-comp:5000:Message...................00:00.000 00:00.583 386.598M 0 new-comp:5000:Label.....................00:00.000 00:00.583 379.482M -7.115M new-comp:7000:Help......................00:00.015 00:00.598 378.059M -1.422M new-comp:14000:Tooltip..................00:00.000 00:00.598 378.059M 0 new-comp:4000:TextAreaControl...........00:00.000 00:00.598 375.212M -2.845M new-comp:3000:Header....................00:00.000 00:00.598 368.096M -7.115M new-comp:15000:Tooltip..................00:00.000 00:00.598 363.827M -4.269M new-comp:8000:Help......................00:00.016 00:00.614 351.018M -12.808M new-comp:16000:Tooltip..................00:00.000 00:00.614 351.018M 0 new-comp:6000:Message...................00:00.000 00:00.614 348.171M -2.845M new-comp:5000:Disclosure................00:00.000 00:00.614 345.326M -2.845M new-comp:5000:GroupValidationMessages...00:00.000 00:00.614 345.326M 0 new-comp:5000:FieldValidationMessages...00:00.000 00:00.614 342.479M -2.845M new-comp:5000:InputField................00:00.000 00:00.614 342.479M 0 new-comp:6000:Label.....................00:00.000 00:00.614 341.056M -1.422M new-comp:5000:Group.....................00:00.015 00:00.629 341.056M 0 new-comp:17000:Tooltip..................00:00.000 00:00.629 336.787M -4.268M new-comp:5000:TextAreaControl...........00:00.000 00:00.629 326.824M -9.961M new-comp:9000:Help......................00:00.000 00:00.629 323.977M -2.845M new-comp:18000:Tooltip..................00:00.000 00:00.629 323.977M 0 new-comp:7000:Message...................00:00.016 00:00.645 309.746M -14.231M new-comp:19000:Tooltip..................00:00.000 00:00.645 309.746M 0 new-comp:7000:Label.....................00:00.000 00:00.645 302.629M -7.115M new-comp:4000:Header....................00:00.016 00:00.661 301.207M -1.422M new-comp:6000:Disclosure................00:00.000 00:00.661 299.783M -1.422M new-comp:6000:GroupValidationMessages...00:00.000 00:00.661 299.783M 0 new-comp:6000:FieldValidationMessages...00:00.000 00:00.661 296.936M -2.845M new-comp:6000:InputField................00:00.000 00:00.661 296.936M 0 new-comp:20000:Tooltip..................00:00.000 00:00.661 296.936M 0 new-comp:10000:Help.....................00:00.000 00:00.661 296.936M 0 new-comp:6000:Group.....................00:00.000 00:00.661 295.513M -1.422M new-comp:21000:Tooltip..................00:00.015 00:00.676 282.705M -12.808M new-comp:6000:TextAreaControl...........00:00.000 00:00.676 279.858M -2.845M new-comp:8000:Message...................00:00.016 00:00.692 272.742M -7.115M new-comp:22000:Tooltip..................00:00.000 00:00.692 269.896M -2.845M new-comp:11000:Help.....................00:00.000 00:00.692 269.896M 0 new-comp:8000:Label.....................00:00.016 00:00.708 264.203M -5.692M new-comp:23000:Tooltip..................00:00.000 00:00.708 255.664M -8.539M new-comp:7000:Disclosure................00:00.000 00:00.708 254.241M -1.422M new-comp:7000:GroupValidationMessages...00:00.000 00:00.708 254.241M 0 new-comp:7000:FieldValidationMessages...00:00.015 00:00.723 252.817M -1.422M new-comp:7000:InputField................00:00.000 00:00.723 252.817M 0 new-comp:7000:Group.....................00:00.000 00:00.723 248.547M -4.269M new-comp:24000:Tooltip..................00:00.000 00:00.723 242.855M -5.692M new-comp:12000:Help.....................00:00.000 00:00.723 242.855M 0 new-comp:5000:Header....................00:00.016 00:00.739 234.316M -8.539M new-comp:9000:Message...................00:00.000 00:00.739 234.316M 0 new-comp:7000:TextAreaControl...........00:00.000 00:00.739 232.893M -1.422M new-comp:25000:Tooltip..................00:00.000 00:00.739 228.624M -4.268M new-comp:9000:Label.....................00:00.000 00:00.739 225.777M -2.845M new-comp:26000:Tooltip..................00:00.015 00:00.754 387.073M 161.295M new-comp:13000:Help.....................00:00.000 00:00.754 387.073M 0 new-comp:8000:Disclosure................00:00.016 00:00.770 380.384M -6.688M new-comp:8000:GroupValidationMessages...00:00.000 00:00.770 380.384M 0 new-comp:8000:FieldValidationMessages...00:00.000 00:00.770 380.384M 0 new-comp:8000:InputField................00:00.000 00:00.770 380.384M 0 new-comp:1000:Action....................00:00.000 00:00.770 378.155M -2.229M new-comp:8000:Group.....................00:00.000 00:00.770 375.924M -2.229M new-comp:27000:Tooltip..................00:00.000 00:00.770 373.695M -2.229M new-comp:10000:Message..................00:00.016 00:00.786 369.236M -4.458M new-comp:28000:Tooltip..................00:00.000 00:00.786 360.317M -8.917M new-comp:14000:Help.....................00:00.000 00:00.786 360.317M 0 new-comp:10000:Label....................00:00.015 00:00.801 358.087M -2.229M new-comp:8000:TextAreaControl...........00:00.000 00:00.801 358.087M 0 new-comp:29000:Tooltip..................00:00.016 00:00.817 346.939M -11.147M new-comp:6000:Header....................00:00.000 00:00.817 340.250M -6.688M new-comp:9000:Disclosure................00:00.000 00:00.817 335.791M -4.458M new-comp:9000:GroupValidationMessages...00:00.000 00:00.817 335.791M 0 new-comp:9000:FieldValidationMessages...00:00.000 00:00.817 335.791M 0 new-comp:9000:InputField................00:00.000 00:00.817 333.561M -2.229M new-comp:30000:Tooltip..................00:00.000 00:00.817 333.561M 0 new-comp:15000:Help.....................00:00.000 00:00.817 333.561M 0 new-comp:11000:Message..................00:00.000 00:00.817 331.332M -2.229M new-comp:9000:Group.....................00:00.000 00:00.817 329.102M -2.229M new-comp:31000:Tooltip..................00:00.016 00:00.833 320.183M -8.917M new-comp:11000:Label....................00:00.000 00:00.833 320.183M 0 new-comp:9000:TextAreaControl...........00:00.015 00:00.848 309.036M -11.147M new-comp:32000:Tooltip..................00:00.000 00:00.848 306.806M -2.229M new-comp:16000:Help.....................00:00.000 00:00.848 306.806M 0 new-comp:33000:Tooltip..................00:00.016 00:00.864 293.427M -13.377M new-comp:12000:Message..................00:00.000 00:00.864 291.198M -2.229M new-comp:10000:FieldValidationMessages..00:00.000 00:00.864 288.968M -2.229M new-comp:10000:Disclosure...............00:00.000 00:00.864 288.968M 0 new-comp:10000:GroupValidationMessages..00:00.000 00:00.864 288.968M 0 new-comp:10000:InputField...............00:00.000 00:00.864 288.968M 0 new-comp:10000:Group....................00:00.000 00:00.864 282.279M -6.688M new-comp:12000:Label....................00:00.015 00:00.879 282.279M 0 new-comp:34000:Tooltip..................00:00.000 00:00.879 280.049M -2.229M new-comp:17000:Help.....................00:00.000 00:00.879 280.049M 0 new-comp:7000:Header....................00:00.000 00:00.879 273.361M -6.688M new-comp:35000:Tooltip..................00:00.000 00:00.879 266.671M -6.688M new-comp:10000:TextAreaControl..........00:00.000 00:00.879 262.212M -4.458M new-comp:13000:Message..................00:00.016 00:00.895 253.293M -8.917M new-comp:36000:Tooltip..................00:00.000 00:00.895 253.293M 0 new-comp:18000:Help.....................00:00.000 00:00.895 253.293M 0 new-comp:11000:FieldValidationMessages..00:00.000 00:00.895 244.375M -8.918M new-comp:11000:InputField...............00:00.000 00:00.895 244.375M 0 new-comp:11000:Disclosure...............00:00.000 00:00.895 244.375M 0 new-comp:11000:GroupValidationMessages..00:00.000 00:00.895 244.375M 0 new-comp:13000:Label....................00:00.000 00:00.895 242.145M -2.229M new-comp:37000:Tooltip..................00:00.016 00:00.911 239.915M -2.229M new-comp:11000:Group....................00:00.000 00:00.911 237.685M -2.229M new-comp:38000:Tooltip..................00:00.000 00:00.911 226.537M -11.148M new-comp:19000:Help.....................00:00.000 00:00.911 226.537M 0 new-comp:14000:Message..................00:00.000 00:00.911 215.388M -11.147M new-comp:11000:TextAreaControl..........00:00.015 00:00.926 215.388M 0 new-comp:39000:Tooltip..................00:00.000 00:00.926 392.500M 177.112M new-comp:8000:Header....................00:00.016 00:00.942 387.042M -5.458M new-comp:14000:Label....................00:00.000 00:00.942 384.314M -2.728M new-comp:12000:FieldValidationMessages..00:00.000 00:00.942 378.856M -5.458M new-comp:12000:InputField...............00:00.000 00:00.942 378.856M 0 new-comp:40000:Tooltip..................00:00.000 00:00.942 378.856M 0 new-comp:12000:Disclosure...............00:00.000 00:00.942 378.856M 0 new-comp:12000:GroupValidationMessages..00:00.000 00:00.942 378.856M 0 new-comp:20000:Help.....................00:00.000 00:00.942 378.856M 0 new-comp:12000:Group....................00:00.000 00:00.942 370.668M -8.186M new-comp:41000:Tooltip..................00:00.016 00:00.958 365.210M -5.458M new-comp:15000:Message..................00:00.000 00:00.958 357.023M -8.186M new-comp:42000:Tooltip..................00:00.000 00:00.958 351.565M -5.458M new-comp:21000:Help.....................00:00.000 00:00.958 351.565M 0 new-comp:12000:TextAreaControl..........00:00.015 00:00.973 348.835M -2.728M new-comp:15000:Label....................00:00.000 00:00.973 346.107M -2.728M new-comp:43000:Tooltip..................00:00.000 00:00.973 337.919M -8.186M new-comp:13000:FieldValidationMessages..00:00.000 00:00.973 335.190M -2.728M new-comp:13000:InputField...............00:00.000 00:00.973 335.190M 0 new-comp:13000:Disclosure...............00:00.000 00:00.973 332.460M -2.728M new-comp:13000:GroupValidationMessages..00:00.000 00:00.973 332.460M 0 new-comp:13000:Group....................00:00.016 00:00.989 324.274M -8.186M new-comp:44000:Tooltip..................00:00.000 00:00.989 324.274M 0 new-comp:22000:Help.....................00:00.000 00:00.989 324.274M 0 new-comp:16000:Message..................00:00.000 00:00.989 321.544M -2.728M new-comp:9000:Header....................00:00.000 00:00.989 318.815M -2.728M new-comp:45000:Tooltip..................00:00.015 00:01.004 310.627M -8.186M new-comp:16000:Label....................00:00.016 00:01.020 307.899M -2.728M new-comp:13000:TextAreaControl..........00:00.000 00:01.020 299.711M -8.186M new-comp:46000:Tooltip..................00:00.000 00:01.020 296.983M -2.728M new-comp:23000:Help.....................00:00.000 00:01.020 296.983M 0 new-comp:14000:FieldValidationMessages..00:00.016 00:01.036 288.795M -8.186M new-comp:14000:InputField...............00:00.000 00:01.036 288.795M 0 new-comp:14000:Disclosure...............00:00.000 00:01.036 288.795M 0 new-comp:14000:GroupValidationMessages..00:00.000 00:01.036 288.795M 0 new-comp:47000:Tooltip..................00:00.000 00:01.036 286.066M -2.728M new-comp:17000:Message..................00:00.000 00:01.036 283.337M -2.728M new-comp:14000:Group....................00:00.000 00:01.036 280.608M -2.728M new-comp:48000:Tooltip..................00:00.015 00:01.051 272.421M -8.186M new-comp:24000:Help.....................00:00.000 00:01.051 269.692M -2.728M new-comp:17000:Label....................00:00.000 00:01.051 266.962M -2.728M new-comp:49000:Tooltip..................00:00.000 00:01.051 258.775M -8.186M new-comp:14000:TextAreaControl..........00:00.016 00:01.067 253.317M -5.458M new-comp:10000:Header...................00:00.000 00:01.067 250.588M -2.728M new-comp:15000:FieldValidationMessages..00:00.000 00:01.067 245.130M -5.458M new-comp:15000:InputField...............00:00.000 00:01.067 245.130M 0 new-comp:50000:Tooltip..................00:00.000 00:01.067 245.130M 0 new-comp:18000:Message..................00:00.000 00:01.067 245.130M 0 new-comp:25000:Help.....................00:00.000 00:01.067 242.401M -2.728M new-comp:15000:Disclosure...............00:00.000 00:01.067 242.401M 0 new-comp:15000:GroupValidationMessages..00:00.000 00:01.067 242.401M 0 new-comp:15000:Group....................00:00.000 00:01.067 234.213M -8.186M new-comp:51000:Tooltip..................00:00.000 00:01.067 231.485M -2.728M new-comp:18000:Label....................00:00.016 00:01.083 228.755M -2.728M new-comp:52000:Tooltip..................00:00.000 00:01.083 217.839M -10.916M new-comp:26000:Help.....................00:00.000 00:01.083 215.110M -2.728M new-comp:19000:Message..................00:00.015 00:01.098 381.037M 165.925M new-comp:15000:TextAreaControl..........00:00.000 00:01.098 381.037M 0 new-comp:53000:Tooltip..................00:00.000 00:01.098 381.037M 0 new-comp:16000:FieldValidationMessages..00:00.000 00:01.098 377.884M -3.152M new-comp:16000:InputField...............00:00.000 00:01.098 374.731M -3.152M new-comp:16000:Disclosure...............00:00.016 00:01.114 371.578M -3.152M new-comp:16000:GroupValidationMessages..00:00.000 00:01.114 371.578M 0 new-comp:19000:Label....................00:00.000 00:01.114 368.425M -3.152M new-comp:54000:Tooltip..................00:00.000 00:01.114 365.272M -3.152M new-comp:27000:Help.....................00:00.000 00:01.114 365.272M 0 new-comp:16000:Group....................00:00.000 00:01.114 362.120M -3.152M new-comp:11000:Header...................00:00.000 00:01.114 362.120M 0 new-comp:55000:Tooltip..................00:00.000 00:01.114 352.661M -9.458M new-comp:20000:Message..................00:00.015 00:01.129 343.203M -9.458M new-comp:56000:Tooltip..................00:00.000 00:01.129 340.049M -3.152M new-comp:1000:Link......................00:00.000 00:01.129 340.049M 0 new-comp:28000:Help.....................00:00.000 00:01.129 336.897M -3.152M new-comp:1000:LinkField.................00:00.000 00:01.129 336.897M 0 new-comp:16000:TextAreaControl..........00:00.000 00:01.129 333.744M -3.152M new-comp:17000:FieldValidationMessages..00:00.000 00:01.129 330.590M -3.152M new-comp:17000:InputField...............00:00.000 00:01.129 330.590M 0 new-comp:20000:Label....................00:00.000 00:01.129 327.438M -3.152M new-comp:17000:Disclosure...............00:00.000 00:01.129 327.438M 0 new-comp:17000:GroupValidationMessages..00:00.000 00:01.129 327.438M 0 new-comp:57000:Tooltip..................00:00.000 00:01.129 327.438M 0 new-comp:17000:Group....................00:00.016 00:01.145 317.979M -9.458M new-comp:58000:Tooltip..................00:00.000 00:01.145 311.673M -6.305M new-comp:29000:Help.....................00:00.000 00:01.145 311.673M 0 new-comp:21000:Message..................00:00.000 00:01.145 305.368M -6.305M new-comp:59000:Tooltip..................00:00.016 00:01.161 299.062M -6.305M new-comp:1000:FieldGroup................00:00.000 00:01.161 295.910M -3.152M new-comp:12000:Header...................00:00.000 00:01.161 292.756M -3.152M new-comp:21000:Label....................00:00.000 00:01.161 289.603M -3.152M new-comp:17000:TextAreaControl..........00:00.000 00:01.161 286.451M -3.152M new-comp:18000:FieldValidationMessages..00:00.000 00:01.161 286.451M 0 new-comp:18000:InputField...............00:00.000 00:01.161 286.451M 0 new-comp:60000:Tooltip..................00:00.000 00:01.161 286.451M 0 new-comp:30000:Help.....................00:00.000 00:01.161 283.297M -3.152M new-comp:18000:Disclosure...............00:00.000 00:01.161 283.297M 0 new-comp:18000:GroupValidationMessages..00:00.000 00:01.161 280.145M -3.152M new-comp:2000:Action....................00:00.015 00:01.176 280.145M 0 new-comp:61000:Tooltip..................00:00.000 00:01.176 270.686M -9.458M new-comp:18000:Group....................00:00.000 00:01.176 270.686M 0 new-comp:22000:Message..................00:00.000 00:01.176 267.533M -3.152M new-comp:62000:Tooltip..................00:00.000 00:01.176 258.075M -9.458M new-comp:31000:Help.....................00:00.000 00:01.176 258.075M 0 new-comp:22000:Label....................00:00.016 00:01.192 251.768M -6.305M new-comp:63000:Tooltip..................00:00.000 00:01.192 245.462M -6.305M new-comp:19000:FieldValidationMessages..00:00.000 00:01.192 242.310M -3.152M new-comp:19000:InputField...............00:00.000 00:01.192 242.310M 0 new-comp:18000:TextAreaControl..........00:00.000 00:01.192 239.157M -3.152M new-comp:19000:Disclosure...............00:00.000 00:01.192 236.003M -3.152M new-comp:19000:GroupValidationMessages..00:00.000 00:01.192 236.003M 0 new-comp:64000:Tooltip..................00:00.000 00:01.192 232.851M -3.152M new-comp:23000:Message..................00:00.016 00:01.208 229.698M -3.152M new-comp:32000:Help.....................00:00.000 00:01.208 229.698M 0 new-comp:13000:Header...................00:00.000 00:01.208 226.545M -3.152M new-comp:19000:Group....................00:00.000 00:01.208 226.545M 0 new-comp:65000:Tooltip..................00:00.000 00:01.208 217.086M -9.458M new-comp:23000:Label....................00:00.000 00:01.208 213.933M -3.152M new-comp:66000:Tooltip..................00:00.015 00:01.223 204.475M -9.458M new-comp:33000:Help.....................00:00.000 00:01.223 203.496M -1002.484k new-comp:20000:FieldValidationMessages..00:00.016 00:01.239 383.436M 179.939M new-comp:20000:InputField...............00:00.000 00:01.239 383.436M 0 new-comp:24000:Message..................00:00.000 00:01.239 380.062M -3.373M new-comp:19000:TextAreaControl..........00:00.000 00:01.239 376.689M -3.373M new-comp:67000:Tooltip..................00:00.000 00:01.239 376.689M 0 new-comp:20000:Disclosure...............00:00.000 00:01.239 376.689M 0 new-comp:20000:GroupValidationMessages..00:00.000 00:01.239 376.689M 0 new-comp:20000:Group....................00:00.000 00:01.239 366.568M -10.121M new-comp:68000:Tooltip..................00:00.000 00:01.239 363.194M -3.373M new-comp:34000:Help.....................00:00.000 00:01.239 363.194M 0 new-comp:24000:Label....................00:00.015 00:01.254 359.821M -3.373M new-comp:69000:Tooltip..................00:00.000 00:01.254 349.700M -10.120M new-comp:14000:Header...................00:00.000 00:01.254 346.326M -3.373M new-comp:25000:Message..................00:00.000 00:01.254 339.579M -6.747M new-comp:21000:FieldValidationMessages..00:00.000 00:01.254 339.579M 0 new-comp:21000:InputField...............00:00.000 00:01.254 336.205M -3.373M new-comp:70000:Tooltip..................00:00.016 00:01.270 336.205M 0 new-comp:35000:Help.....................00:00.000 00:01.270 336.205M 0 new-comp:21000:Disclosure...............00:00.000 00:01.270 332.832M -3.373M new-comp:21000:GroupValidationMessages..00:00.000 00:01.270 332.832M 0 new-comp:20000:TextAreaControl..........00:00.000 00:01.270 329.458M -3.373M new-comp:71000:Tooltip..................00:00.000 00:01.270 322.710M -6.747M new-comp:25000:Label....................00:00.000 00:01.270 322.710M 0 new-comp:21000:Group....................00:00.000 00:01.270 319.336M -3.373M new-comp:72000:Tooltip..................00:00.016 00:01.286 309.216M -10.120M new-comp:36000:Help.....................00:00.000 00:01.286 309.216M 0 new-comp:26000:Message..................00:00.000 00:01.286 302.469M -6.747M new-comp:73000:Tooltip..................00:00.000 00:01.286 295.722M -6.747M new-comp:22000:FieldValidationMessages..00:00.000 00:01.286 292.348M -3.373M new-comp:22000:InputField...............00:00.000 00:01.286 292.348M 0 new-comp:22000:Disclosure...............00:00.015 00:01.301 285.601M -6.747M new-comp:22000:GroupValidationMessages..00:00.000 00:01.301 285.601M 0 new-comp:21000:TextAreaControl..........00:00.000 00:01.301 282.227M -3.373M new-comp:74000:Tooltip..................00:00.000 00:01.301 282.227M 0 new-comp:26000:Label....................00:00.000 00:01.301 282.227M 0 new-comp:37000:Help.....................00:00.000 00:01.301 282.227M 0 new-comp:15000:Header...................00:00.000 00:01.301 278.854M -3.373M new-comp:22000:Group....................00:00.016 00:01.317 272.107M -6.747M new-comp:75000:Tooltip..................00:00.000 00:01.317 265.359M -6.747M new-comp:27000:Message..................00:00.031 00:01.348 258.612M -6.747M new-comp:76000:Tooltip..................00:00.016 00:01.364 245.118M -13.494M new-comp:38000:Help.....................00:00.000 00:01.364 241.745M -3.373M new-comp:23000:FieldValidationMessages..00:00.031 00:01.395 231.624M -10.120M new-comp:23000:InputField...............00:00.000 00:01.395 231.624M 0 new-comp:27000:Label....................00:00.031 00:01.426 221.503M -10.120M new-comp:77000:Tooltip..................00:00.000 00:01.426 221.503M 0 new-comp:23000:Disclosure...............00:00.000 00:01.426 218.129M -3.373M new-comp:23000:GroupValidationMessages..00:00.000 00:01.426 218.129M 0 new-comp:22000:TextAreaControl..........00:00.016 00:01.442 211.382M -6.747M new-comp:78000:Tooltip..................00:00.062 00:01.504 374.845M 163.462M new-comp:23000:Group....................00:00.000 00:01.504 374.845M 0 new-comp:39000:Help.....................00:00.000 00:01.504 371.157M -3.688M new-comp:28000:Message..................00:00.000 00:01.504 371.157M 0 new-comp:3000:Action....................00:00.032 00:01.536 360.088M -11.067M new-comp:79000:Tooltip..................00:00.015 00:01.551 356.400M -3.688M new-comp:16000:Header...................00:00.016 00:01.567 349.021M -7.377M new-comp:28000:Label....................00:00.031 00:01.598 337.954M -11.067M new-comp:24000:FieldValidationMessages..00:00.000 00:01.598 334.265M -3.688M new-comp:24000:InputField...............00:00.000 00:01.598 334.265M 0 new-comp:80000:Tooltip..................00:00.000 00:01.598 334.265M 0 new-comp:1000:Image.....................00:00.000 00:01.598 330.576M -3.688M new-comp:40000:Help.....................00:00.016 00:01.614 326.886M -3.688M new-comp:24000:Disclosure...............00:00.015 00:01.629 319.508M -7.377M new-comp:24000:GroupValidationMessages..00:00.000 00:01.629 319.508M 0 new-comp:23000:TextAreaControl..........00:00.016 00:01.645 312.130M -7.377M new-comp:81000:Tooltip..................00:00.000 00:01.645 312.130M 0 new-comp:1000:LightBox..................00:00.016 00:01.661 304.751M -7.377M new-comp:29000:Message..................00:00.000 00:01.661 304.751M 0 new-comp:24000:Group....................00:00.015 00:01.676 301.063M -3.688M new-comp:82000:Tooltip..................00:00.032 00:01.708 289.996M -11.067M new-comp:41000:Help.....................00:00.000 00:01.708 286.306M -3.688M new-comp:29000:Label....................00:00.031 00:01.739 275.239M -11.067M new-comp:2000:Link......................00:00.000 00:01.739 271.549M -3.688M new-comp:83000:Tooltip..................00:00.015 00:01.754 267.860M -3.688M new-comp:25000:FieldValidationMessages..00:00.000 00:01.754 264.170M -3.688M new-comp:25000:InputField...............00:00.000 00:01.754 264.170M 0 new-comp:84000:Tooltip..................00:00.063 00:01.817 245.725M -18.445M new-comp:25000:Disclosure...............00:00.000 00:01.817 242.036M -3.688M new-comp:25000:GroupValidationMessages..00:00.000 00:01.817 242.036M 0 new-comp:42000:Help.....................00:00.000 00:01.817 242.036M 0 new-comp:30000:Message..................00:00.000 00:01.817 242.036M 0 new-comp:17000:Header...................00:00.000 00:01.817 242.036M 0 new-comp:24000:TextAreaControl..........00:00.000 00:01.817 242.036M 0 new-comp:25000:Group....................00:00.031 00:01.848 227.279M -14.755M new-comp:85000:Tooltip..................00:00.000 00:01.848 227.279M 0 new-comp:4000:Action....................00:00.031 00:01.879 212.522M -14.756M new-comp:2000:Image.....................00:00.000 00:01.879 212.522M 0 new-comp:30000:Label....................00:00.016 00:01.895 208.833M -3.688M new-comp:86000:Tooltip..................00:00.000 00:01.895 205.144M -3.688M new-comp:43000:Help.....................00:00.000 00:01.895 201.455M -3.688M new-comp:26000:FieldValidationMessages..00:00.016 00:01.911 190.387M -11.066M new-comp:26000:InputField...............00:00.000 00:01.911 190.387M 0 new-comp:87000:Tooltip..................00:00.015 00:01.926 183.009M -7.377M new-comp:31000:Message..................00:00.063 00:01.989 356.140M 173.130M new-comp:26000:Disclosure...............00:00.031 00:02.020 348.556M -7.583M new-comp:26000:GroupValidationMessages..00:00.000 00:02.020 348.556M 0 new-comp:25000:TextAreaControl..........00:00.000 00:02.020 344.763M -3.791M new-comp:2000:LightBox..................00:00.016 00:02.036 340.971M -3.791M new-comp:88000:Tooltip..................00:00.000 00:02.036 337.178M -3.791M new-comp:44000:Help.....................00:00.000 00:02.036 333.386M -3.791M new-comp:26000:Group....................00:00.015 00:02.051 325.801M -7.583M new-comp:31000:Label....................00:00.016 00:02.067 322.008M -3.791M new-comp:89000:Tooltip..................00:00.016 00:02.083 314.424M -7.583M new-comp:18000:Header...................00:00.000 00:02.083 310.631M -3.791M new-comp:27000:FieldValidationMessages..00:00.031 00:02.114 295.461M -15.168M new-comp:27000:InputField...............00:00.000 00:02.114 295.461M 0 new-comp:90000:Tooltip..................00:00.000 00:02.114 295.461M 0 new-comp:32000:Message..................00:00.000 00:02.114 295.461M 0 new-comp:45000:Help.....................00:00.032 00:02.146 291.669M -3.791M new-comp:1000:TextControl...............00:00.002 00:02.148 287.876M -3.791M new-comp:27000:Disclosure...............00:00.019 00:02.167 272.708M -15.168M new-comp:27000:GroupValidationMessages..00:00.001 00:02.168 272.708M 0 new-comp:91000:Tooltip..................00:00.000 00:02.168 272.708M 0 new-comp:3000:Image.....................00:00.014 00:02.182 268.915M -3.791M new-comp:26000:TextAreaControl..........00:00.002 00:02.184 268.915M 0 new-comp:32000:Label....................00:00.008 00:02.192 261.330M -7.583M new-comp:27000:Group....................00:00.021 00:02.213 253.745M -7.583M new-comp:92000:Tooltip..................00:00.002 00:02.215 249.953M -3.791M new-comp:46000:Help.....................00:00.004 00:02.219 249.953M 0 new-comp:5000:Action....................00:00.006 00:02.225 246.160M -3.791M new-comp:33000:Message..................00:00.030 00:02.255 230.990M -15.168M new-comp:93000:Tooltip..................00:00.001 00:02.256 230.990M 0 new-comp:28000:FieldValidationMessages..00:00.005 00:02.261 223.406M -7.583M new-comp:28000:InputField...............00:00.001 00:02.262 223.406M 0 new-comp:94000:Tooltip..................00:00.029 00:02.291 208.236M -15.168M new-comp:47000:Help.....................00:00.002 00:02.293 204.443M -3.791M new-comp:19000:Header...................00:00.001 00:02.294 204.443M 0 new-comp:28000:Disclosure...............00:00.002 00:02.296 200.650M -3.791M new-comp:28000:GroupValidationMessages..00:00.001 00:02.297 200.650M 0 new-comp:3000:LightBox..................00:00.010 00:02.307 196.858M -3.791M new-comp:33000:Label....................00:00.007 00:02.314 196.858M 0 new-comp:27000:TextAreaControl..........00:00.002 00:02.316 193.066M -3.791M new-comp:3000:Link......................00:00.009 00:02.325 189.273M -3.791M new-comp:95000:Tooltip..................00:00.012 00:02.337 185.481M -3.791M new-comp:28000:Group....................00:00.006 00:02.343 181.688M -3.791M new-comp:34000:Message..................00:00.026 00:02.369 166.518M -15.168M new-comp:96000:Tooltip..................00:00.002 00:02.371 166.518M 0 new-comp:48000:Help.....................00:00.088 00:02.459 336.167M 169.648M new-comp:29000:FieldValidationMessages..00:00.009 00:02.468 327.950M -8.217M new-comp:29000:InputField...............00:00.001 00:02.469 327.950M 0 new-comp:97000:Tooltip..................00:00.023 00:02.492 319.732M -8.216M new-comp:4000:Image.....................00:00.015 00:02.507 315.624M -4.108M new-comp:34000:Label....................00:00.014 00:02.521 311.515M -4.108M new-comp:1000:Inquiry...................00:00.012 00:02.533 303.297M -8.216M new-comp:1000:QuickFinder...............00:00.000 00:02.533 303.297M 0 new-comp:29000:Disclosure...............00:00.006 00:02.539 299.188M -4.108M new-comp:29000:GroupValidationMessages..00:00.000 00:02.539 299.188M 0 new-comp:98000:Tooltip..................00:00.002 00:02.541 299.188M 0 new-comp:28000:TextAreaControl..........00:00.000 00:02.541 299.188M 0 new-comp:49000:Help.....................00:00.002 00:02.543 295.080M -4.108M new-comp:29000:Group....................00:00.022 00:02.565 282.752M -12.326M new-comp:35000:Message..................00:00.001 00:02.566 282.752M 0 new-comp:6000:Action....................00:00.011 00:02.577 278.644M -4.108M new-comp:99000:Tooltip..................00:00.007 00:02.584 274.535M -4.108M new-comp:20000:Header...................00:00.002 00:02.586 270.426M -4.108M new-comp:30000:FieldValidationMessages..00:00.019 00:02.605 258.099M -12.326M new-comp:30000:InputField...............00:00.013 00:02.618 253.991M -4.108M new-comp:100000:Tooltip.................00:00.001 00:02.619 253.991M 0 new-comp:50000:Help.....................00:00.003 00:02.622 249.881M -4.108M new-comp:35000:Label....................00:00.004 00:02.626 249.881M 0 new-comp:101000:Tooltip.................00:00.027 00:02.653 233.446M -16.434M new-comp:4000:LightBox..................00:00.008 00:02.661 233.446M 0 new-comp:30000:Disclosure...............00:00.012 00:02.673 229.337M -4.108M new-comp:30000:GroupValidationMessages..00:00.001 00:02.674 225.228M -4.108M new-comp:29000:TextAreaControl..........00:00.004 00:02.678 225.228M 0 new-comp:36000:Message..................00:00.016 00:02.694 217.010M -8.216M new-comp:102000:Tooltip.................00:00.003 00:02.697 212.902M -4.108M apply-model-end:TransactionView.........00:00.011 00:02.708 208.792M -4.108M perform-lifecycle-after-model:Transactio00:00.000 00:02.708 208.792M 0 perform-lifecycle-model-reindex:Transact00:00.011 00:02.719 204.684M -4.108M perform-lifecycle-finalize:TransactionVi00:00.717 00:03.436 285.164M 80.478M perform-lifecycle-final-reindex:Transact00:00.016 00:03.452 281.026M -4.136M perform-lifecycle-final:TransactionView.00:00.000 00:03.452 281.026M 0 validate-view:TransactionView...........00:00.000 00:03.452 281.026M 0 post-handle.............................00:00.000 00:03.452 281.026M 0 after-completion........................00:00.125 00:03.577 272.750M -8.274M after-completion-end....................00:00.047 00:03.624 272.750M 0 Processing Complete.....................00:00.000 00:03.624 272.750M 0 Monitors: new-comp:6512:Action new-comp:6:BlockUI new-comp:13:BreadcrumbItem new-comp:3:Breadcrumbs new-comp:246:CheckboxControl new-comp:242:CollectionGroup new-comp:30255:Disclosure new-comp:1753:FieldGroup new-comp:30661:FieldValidationMessages new-comp:2:FormView new-comp:29987:Group new-comp:30251:GroupValidationMessages new-comp:3:Growls new-comp:20574:Header new-comp:50990:Help new-comp:4925:Image new-comp:30654:InputField new-comp:1202:Inquiry new-comp:35615:Label new-comp:4207:LightBox new-comp:3630:Link new-comp:1826:LinkField new-comp:36750:Message new-comp:240:MessageField new-comp:3:PageGroup new-comp:4:PageValidationMessages new-comp:244:Pager new-comp:1202:QuickFinder new-comp:244:RichTable new-comp:913:Suggest new-comp:29189:TextAreaControl new-comp:1108:TextControl new-comp:102143:Tooltip new-comp:3:ViewHeader Counters: bean-property-read: 8828 (00:00.000/00:00.016/00:00.000) longest : LinkField:fieldLabel bean-property-write: 24566 (00:00.000/00:00.016/00:00.000) longest : Disclosure:expandImageSrc Elapsed Time: 00:03.624 Memory Usage: 272.750M/769.062M/910.250M - 35% free Memory Delta: 17.321M/769.062M/910.250M - 2% free - tot delta: 23.812M Next pass at reducing object creation will target per-transaction use of componentsForLifecycle and other dynamic collections. A third pass will aim for reusing components where possible.
          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) made changes -
          Remaining Estimate 4 hours [ 14400 ] 2 hours [ 7200 ]
          Time Spent 6 hours [ 21600 ] 1 day [ 28800 ]
          Worklog Id 88246 [ 88246 ]
          Hide
          Mark Fyffe (Inactive) added a comment -

          Revisited transactional caching of getComponentsForLifecycle()

          When active, some side-effects of this caching became evident. In particular, cached lists don't always include all children at all phases, resulting in missing templates.

          Prior to committing this update, I'll need to correct the error below - I was unable to narrow the root cause down this evening, but once found it appears that reduced object creation is possible through this technique.

          2013-09-09 01:14:05,827 [http-8080-6] u:admin/d: ERROR freemarker.log._Log4JLogg
          erFactory$Log4JLogger - Error executing FreeMarker template
          FreeMarker template error:
          No macro found using uif_messageField
          
          The failing instruction (FTL stack trace):
          ----------
          ==> <#krad_inline "template" />  [in template "krad/WEB-INF/ftl/lib/template.ftl
          " in macro "template" at line 19, column 9]
              @krad.template component=item  [in template "krad/WEB-INF/ftl/dataTablesJson
          .ftl" in macro "uif_table_json" at line 75, column 41]
              @jsonEscape  [in template "krad/WEB-INF/ftl/dataTablesJson.ftl" in macro "ui
          f_table_json" at line 75, column 28]
              @uif_table_json manager, filteredColl...  [in template "krad/WEB-INF/ftl/dat
          aTablesJson.ftl" at line 96, column 5]
              #if KualiForm.updateComponentId??  [in template "krad/WEB-INF/ftl/dataTablesJson.ftl" at line 23, column 1]
              #include "\${KualiForm.requestJsonTem...  [in template "krad/WEB-INF/ftl/uifRender.ftl" at line 41, column 9]
              #if KualiForm.jsonRequest  [in template "krad/WEB-INF/ftl/uifRender.ftl" at line 40, column 5]
          ----------
          
          Java stack trace (for programmers):
          ----------
          freemarker.template.TemplateException: [... Exception message was already printed; see it above ...]
                  at org.kuali.rice.krad.uif.freemarker.FreeMarkerInlineRenderUtils.renderTemplate(FreeMarkerInlineRenderUtils.java:183)
                  at org.kuali.rice.krad.uif.freemarker.FreeMarkerTemplateAdaptor.accept(FreeMarkerTemplateAdaptor.java:57)
                  at freemarker.core.InlineKradElement.accept(InlineKradElement.java:122)
                  at freemarker.core.Environment.visit(Environment.java:265)
                  at freemarker.core.Macro$Context.runMacro(Macro.java:209)
                  at freemarker.core.Environment.visit(Environment.java:694)
                  at freemarker.core.UnifiedCall.accept(UnifiedCall.java:116)
                  at freemarker.core.Environment.visit(Environment.java:265)
                  at freemarker.core.Environment$1.render(Environment.java:313)
                  at org.kuali.rice.krad.uif.freemarker.JsonStringEscapeDirective.execute(JsonStringEscapeDirective.java:67)
                  at freemarker.core.Environment.visit(Environment.java:341)
                  at freemarker.core.UnifiedCall.accept(UnifiedCall.java:136)
                  at freemarker.core.Environment.visit(Environment.java:265)
                  at freemarker.core.MixedContent.accept(MixedContent.java:93)
                  at freemarker.core.Environment.visitByHiddingParent(Environment.java:286)
                  at freemarker.core.IteratorBlock$Context.runLoop(IteratorBlock.java:193)
                  at freemarker.core.Environment.visitIteratorBlock(Environment.java:509)
                  at freemarker.core.IteratorBlock.accept(IteratorBlock.java:103)
                  at freemarker.core.Environment.visit(Environment.java:265)
                  at freemarker.core.MixedContent.accept(MixedContent.java:93)
                  at freemarker.core.Environment.visitByHiddingParent(Environment.java:286)
                  at freemarker.core.Environment.visitAndTransform(Environment.java:377)
                  at freemarker.core.CompressedBlock.accept(CompressedBlock.java:73)
                  at freemarker.core.Environment.visit(Environment.java:265)
                  at freemarker.core.Macro$Context.runMacro(Macro.java:209)
                  at freemarker.core.Environment.visit(Environment.java:694)
                  at freemarker.core.UnifiedCall.accept(UnifiedCall.java:116)
                  at freemarker.core.Environment.visit(Environment.java:265)
                  at freemarker.core.MixedContent.accept(MixedContent.java:93)
                  at freemarker.core.Environment.visit(Environment.java:265)
                  at freemarker.core.IfBlock.accept(IfBlock.java:84)
                  at freemarker.core.Environment.visit(Environment.java:265)
                  at freemarker.core.MixedContent.accept(MixedContent.java:93)
                  at freemarker.core.Environment.visit(Environment.java:265)
                  at freemarker.core.Environment.include(Environment.java:1712)
                  at freemarker.core.Include.accept(Include.java:172)
                  at freemarker.core.Environment.visit(Environment.java:265)
                  at freemarker.core.IfBlock.accept(IfBlock.java:84)
                  at freemarker.core.Environment.visit(Environment.java:265)
                  at freemarker.core.MixedContent.accept(MixedContent.java:93)
                  at freemarker.core.Environment.visitByHiddingParent(Environment.java:286)
                  at freemarker.core.Environment.visitAndTransform(Environment.java:377)
                  at freemarker.core.CompressedBlock.accept(CompressedBlock.java:73)
                  at freemarker.core.Environment.visit(Environment.java:265)
                  at freemarker.core.MixedContent.accept(MixedContent.java:93)
                  at freemarker.core.Environment.visit(Environment.java:265)
                  at freemarker.core.Environment.process(Environment.java:243)
                  at freemarker.template.Template.process(Template.java:277)
                  at org.springframework.web.servlet.view.freemarker.FreeMarkerView.processTemplate(FreeMarkerView.java:366)
                  at org.springframework.web.servlet.view.freemarker.FreeMarkerView.doRender(FreeMarkerView.java:283)
                  at org.springframework.web.servlet.view.freemarker.FreeMarkerView.renderMergedTemplateModel(FreeMarkerView.java:233)
                  at org.springframework.web.servlet.view.AbstractTemplateView.renderMergedOutputModel(AbstractTemplateView.java:167)
                  at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:263)
                  at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1208)
                  at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:992)
                  at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:939)
                  at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)
                  at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:936)
                  at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:827)
                  at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
                  at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812)
                  at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
                  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
                  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                  at org.kuali.rice.krad.web.filter.CharsetFilter.doFilter(CharsetFilter.java:58)
                  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                  at org.kuali.rice.krad.web.filter.UserLoginFilter.doFilter(UserLoginFilter.java:89)
                  at org.kuali.rice.krad.web.filter.UserLoginFilter.doFilter(UserLoginFilter.java:77)
                  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                  at org.kuali.rice.krad.web.filter.BootstrapFilterChain.doFilter(BootstrapFilter.java:327)
                  at org.kuali.rice.krad.web.filter.DummyLoginFilter.doFilter(DummyLoginFilter.java:82)
                  at org.kuali.rice.krad.web.filter.DummyLoginFilter.doFilter(DummyLoginFilter.java:62)
                  at org.kuali.rice.krad.web.filter.BootstrapFilterChain.doFilter(BootstrapFilter.java:320)
                  at org.kuali.rice.krad.web.filter.BootstrapFilter.doFilter(BootstrapFilter.java:199)
                  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                  at org.kuali.rice.krad.web.filter.UifSessionTimeoutFilter.doFilter(UifSessionTimeoutFilter.java:106)
                  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                  at org.kuali.rice.core.web.Log4JContextClearingFilter.doFilterInternal(Log4JContextClearingFilter.java:37)
                  at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
                  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                  at org.kuali.rice.krad.web.filter.HideWebInfFilter.doFilter(HideWebInfFilter.java:68)
                  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                  at org.springframework.web.filter.AbstractRequestLoggingFilter.doFilterInternal(AbstractRequestLoggingFilter.java:213)
                  at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
                  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                  at org.kuali.rice.krad.uif.util.ProcessLoggingFilter$1.call(ProcessLoggingFilter.java:72)
                  at org.kuali.rice.krad.uif.util.ProcessLoggingFilter$1.call(ProcessLoggingFilter.java:69)
                  at org.kuali.rice.krad.uif.util.ProcessLogger.follow(ProcessLogger.java:645)
                  at org.kuali.rice.krad.uif.util.ProcessLoggingFilter.doFilter(ProcessLoggingFilter.java:69)
                  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                  at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
                  at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
                  at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
                  at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
                  at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
                  at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
                  at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
                  at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
                  at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
                  at java.lang.Thread.run(Thread.java:724)
          
          Show
          Mark Fyffe (Inactive) added a comment - Revisited transactional caching of getComponentsForLifecycle() When active, some side-effects of this caching became evident. In particular, cached lists don't always include all children at all phases, resulting in missing templates. Prior to committing this update, I'll need to correct the error below - I was unable to narrow the root cause down this evening, but once found it appears that reduced object creation is possible through this technique. 2013-09-09 01:14:05,827 [http-8080-6] u:admin/d: ERROR freemarker.log._Log4JLogg erFactory$Log4JLogger - Error executing FreeMarker template FreeMarker template error: No macro found using uif_messageField The failing instruction (FTL stack trace): ---------- ==> <#krad_inline "template" /> [in template "krad/WEB-INF/ftl/lib/template.ftl " in macro "template" at line 19, column 9] @krad.template component=item [in template "krad/WEB-INF/ftl/dataTablesJson .ftl" in macro "uif_table_json" at line 75, column 41] @jsonEscape [in template "krad/WEB-INF/ftl/dataTablesJson.ftl" in macro "ui f_table_json" at line 75, column 28] @uif_table_json manager, filteredColl... [in template "krad/WEB-INF/ftl/dat aTablesJson.ftl" at line 96, column 5] #if KualiForm.updateComponentId?? [in template "krad/WEB-INF/ftl/dataTablesJson.ftl" at line 23, column 1] #include "\${KualiForm.requestJsonTem... [in template "krad/WEB-INF/ftl/uifRender.ftl" at line 41, column 9] #if KualiForm.jsonRequest [in template "krad/WEB-INF/ftl/uifRender.ftl" at line 40, column 5] ---------- Java stack trace (for programmers): ---------- freemarker.template.TemplateException: [... Exception message was already printed; see it above ...] at org.kuali.rice.krad.uif.freemarker.FreeMarkerInlineRenderUtils.renderTemplate(FreeMarkerInlineRenderUtils.java:183) at org.kuali.rice.krad.uif.freemarker.FreeMarkerTemplateAdaptor.accept(FreeMarkerTemplateAdaptor.java:57) at freemarker.core.InlineKradElement.accept(InlineKradElement.java:122) at freemarker.core.Environment.visit(Environment.java:265) at freemarker.core.Macro$Context.runMacro(Macro.java:209) at freemarker.core.Environment.visit(Environment.java:694) at freemarker.core.UnifiedCall.accept(UnifiedCall.java:116) at freemarker.core.Environment.visit(Environment.java:265) at freemarker.core.Environment$1.render(Environment.java:313) at org.kuali.rice.krad.uif.freemarker.JsonStringEscapeDirective.execute(JsonStringEscapeDirective.java:67) at freemarker.core.Environment.visit(Environment.java:341) at freemarker.core.UnifiedCall.accept(UnifiedCall.java:136) at freemarker.core.Environment.visit(Environment.java:265) at freemarker.core.MixedContent.accept(MixedContent.java:93) at freemarker.core.Environment.visitByHiddingParent(Environment.java:286) at freemarker.core.IteratorBlock$Context.runLoop(IteratorBlock.java:193) at freemarker.core.Environment.visitIteratorBlock(Environment.java:509) at freemarker.core.IteratorBlock.accept(IteratorBlock.java:103) at freemarker.core.Environment.visit(Environment.java:265) at freemarker.core.MixedContent.accept(MixedContent.java:93) at freemarker.core.Environment.visitByHiddingParent(Environment.java:286) at freemarker.core.Environment.visitAndTransform(Environment.java:377) at freemarker.core.CompressedBlock.accept(CompressedBlock.java:73) at freemarker.core.Environment.visit(Environment.java:265) at freemarker.core.Macro$Context.runMacro(Macro.java:209) at freemarker.core.Environment.visit(Environment.java:694) at freemarker.core.UnifiedCall.accept(UnifiedCall.java:116) at freemarker.core.Environment.visit(Environment.java:265) at freemarker.core.MixedContent.accept(MixedContent.java:93) at freemarker.core.Environment.visit(Environment.java:265) at freemarker.core.IfBlock.accept(IfBlock.java:84) at freemarker.core.Environment.visit(Environment.java:265) at freemarker.core.MixedContent.accept(MixedContent.java:93) at freemarker.core.Environment.visit(Environment.java:265) at freemarker.core.Environment.include(Environment.java:1712) at freemarker.core.Include.accept(Include.java:172) at freemarker.core.Environment.visit(Environment.java:265) at freemarker.core.IfBlock.accept(IfBlock.java:84) at freemarker.core.Environment.visit(Environment.java:265) at freemarker.core.MixedContent.accept(MixedContent.java:93) at freemarker.core.Environment.visitByHiddingParent(Environment.java:286) at freemarker.core.Environment.visitAndTransform(Environment.java:377) at freemarker.core.CompressedBlock.accept(CompressedBlock.java:73) at freemarker.core.Environment.visit(Environment.java:265) at freemarker.core.MixedContent.accept(MixedContent.java:93) at freemarker.core.Environment.visit(Environment.java:265) at freemarker.core.Environment.process(Environment.java:243) at freemarker.template.Template.process(Template.java:277) at org.springframework.web.servlet.view.freemarker.FreeMarkerView.processTemplate(FreeMarkerView.java:366) at org.springframework.web.servlet.view.freemarker.FreeMarkerView.doRender(FreeMarkerView.java:283) at org.springframework.web.servlet.view.freemarker.FreeMarkerView.renderMergedTemplateModel(FreeMarkerView.java:233) at org.springframework.web.servlet.view.AbstractTemplateView.renderMergedOutputModel(AbstractTemplateView.java:167) at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:263) at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1208) at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:992) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:939) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:936) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:827) at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812) at javax.servlet.http.HttpServlet.service(HttpServlet.java:723) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.kuali.rice.krad.web.filter.CharsetFilter.doFilter(CharsetFilter.java:58) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.kuali.rice.krad.web.filter.UserLoginFilter.doFilter(UserLoginFilter.java:89) at org.kuali.rice.krad.web.filter.UserLoginFilter.doFilter(UserLoginFilter.java:77) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.kuali.rice.krad.web.filter.BootstrapFilterChain.doFilter(BootstrapFilter.java:327) at org.kuali.rice.krad.web.filter.DummyLoginFilter.doFilter(DummyLoginFilter.java:82) at org.kuali.rice.krad.web.filter.DummyLoginFilter.doFilter(DummyLoginFilter.java:62) at org.kuali.rice.krad.web.filter.BootstrapFilterChain.doFilter(BootstrapFilter.java:320) at org.kuali.rice.krad.web.filter.BootstrapFilter.doFilter(BootstrapFilter.java:199) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.kuali.rice.krad.web.filter.UifSessionTimeoutFilter.doFilter(UifSessionTimeoutFilter.java:106) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.kuali.rice.core.web.Log4JContextClearingFilter.doFilterInternal(Log4JContextClearingFilter.java:37) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.kuali.rice.krad.web.filter.HideWebInfFilter.doFilter(HideWebInfFilter.java:68) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.springframework.web.filter.AbstractRequestLoggingFilter.doFilterInternal(AbstractRequestLoggingFilter.java:213) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.kuali.rice.krad.uif.util.ProcessLoggingFilter$1.call(ProcessLoggingFilter.java:72) at org.kuali.rice.krad.uif.util.ProcessLoggingFilter$1.call(ProcessLoggingFilter.java:69) at org.kuali.rice.krad.uif.util.ProcessLogger.follow(ProcessLogger.java:645) at org.kuali.rice.krad.uif.util.ProcessLoggingFilter.doFilter(ProcessLoggingFilter.java:69) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) at java.lang.Thread.run(Thread.java:724)
          Mark Fyffe (Inactive) made changes -
          Status Open [ 1 ] In Progress [ 3 ]
          Hide
          Mark Fyffe (Inactive) added a comment -

          Attached patch file of transactional list caching effort indicated in comments on this issue. So far, this technique is leading to rendering errors so I can't commit these changes just yet.

          Show
          Mark Fyffe (Inactive) added a comment - Attached patch file of transactional list caching effort indicated in comments on this issue. So far, this technique is leading to rendering errors so I can't commit these changes just yet.
          Mark Fyffe (Inactive) made changes -
          Attachment kulrice-8954-tx.patch [ 71570 ]
          Mark Fyffe (Inactive) made changes -
          Link This issue fixes KULRICE-10107 [ KULRICE-10107 ]
          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) made changes -
          Remaining Estimate 2 hours [ 7200 ] 1 hour [ 3600 ]
          Time Spent 1 day [ 28800 ] 1 day, 1 hour [ 32400 ]
          Worklog Id 88415 [ 88415 ]
          Mark Fyffe (Inactive) made changes -
          Link This issue is related to KULRICE-10532 [ KULRICE-10532 ]
          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.
          Hide
          Mark Fyffe (Inactive) added a comment -

          Backed out caching of nested component lists after testing led to a variety of rendering errors. Significant reductions on object creation for large views are possible using this technique, but a thorough review of components will be needed in order to allow cached transaction lists to follow impacting changes. I tried a few different approaches, but the second pass at reducing object creation yielded either no benefits or rendering errors so related changes have been deferred for later efforts.

          In a third pass at reducing object creation, I have reduced calls to getComponentsForLifecycle() by reusing component lists for specific scenarios:

          • Validator.runValidationsOnLifecycle() - as originally reported the getComponentsForLifecycle() call was repeated several times, including as the limit condition in a for() loop. When used on a deep component, this loop could becoime very heavy.
          • Updated pushAllToContext() to minimize traversal of property replacers
          • Refactored several methods in ComponentUtils to eliminate creation of empty ArrayList insteances, reduce nested component traversal overhead through tail-recursion, and maximize the effectiveness of each traversal when appropriate:
            • Short circuit to return Collections.emptyList() when passed an empty list:
              • copyFieldList
              • copyComponentList
              • getComponentsOfType
              • getComponentsofTypeShallow
              • getComponentsofTypeDeep
              • getNestedComponentsofTypeShallow
              • getAllNestedComponents
            • Delay creation of ArrayList until first object is added:
              • getComponentsOfType
              • getComponentsOfTypeShallow
              • getComponentsOfTypeDeep
              • getNestedComponentsofTypeShallow
              • getAllNestedComponents
            • Use tail-recursion to minimize ArrayList creation while traversing deep lists
              • getComponentsOfTypeDeep
              • getAllNestedComponents
              • findNestedComponentById
              • pushObjectToContext
            • Eliminate calls to build list for traversal by traversing directly
              • findNestedComponentById
            • Added method pushAllToContext() for adding all map entries to nested components with a single traversal.
              • Changed updateContextForLine to use pushAllToContext() instead of multiple calls to pushObjectToContext()
            • Converted sort loops to use foreach() form instead of index counter.

          Additional reductions included in the third pass:

          • Converted Group and CollectionGroup initial lists to use Collections.emptyList() instead of new ArrayList(). Since the initial list is never modified, this solution reduces object creation without adding the risk of introducing NPE errors.
          • Eliminated initial cssClasses and propertyReplacer lists from LayoutManagerBase, checked for NPE conditions.
          • Added isEmpty() checks after null checks in copy() method in ComponentBase, Group, CollectionGroup, and LayoutManagerBase to skip creation of ArrayList when the source list is already empty.
          • Converted getContext() calls to return an unmodifiable map, and initialized the context map to Collections.emptyMap(). This enforces the intended usage of the context map to ensure that operations on the context may be optimized with ComponentBase and LayoutManagerBase without side-effects. Added pushAllToContext() to LayoutManager interface, and corrected external modification of the context from ViewHelperServiceImpl to use this method instead.
          Show
          Mark Fyffe (Inactive) added a comment - Backed out caching of nested component lists after testing led to a variety of rendering errors. Significant reductions on object creation for large views are possible using this technique, but a thorough review of components will be needed in order to allow cached transaction lists to follow impacting changes. I tried a few different approaches, but the second pass at reducing object creation yielded either no benefits or rendering errors so related changes have been deferred for later efforts. In a third pass at reducing object creation, I have reduced calls to getComponentsForLifecycle() by reusing component lists for specific scenarios: Validator.runValidationsOnLifecycle() - as originally reported the getComponentsForLifecycle() call was repeated several times, including as the limit condition in a for() loop. When used on a deep component, this loop could becoime very heavy. Updated pushAllToContext() to minimize traversal of property replacers Refactored several methods in ComponentUtils to eliminate creation of empty ArrayList insteances, reduce nested component traversal overhead through tail-recursion, and maximize the effectiveness of each traversal when appropriate: Short circuit to return Collections.emptyList() when passed an empty list: copyFieldList copyComponentList getComponentsOfType getComponentsofTypeShallow getComponentsofTypeDeep getNestedComponentsofTypeShallow getAllNestedComponents Delay creation of ArrayList until first object is added: getComponentsOfType getComponentsOfTypeShallow getComponentsOfTypeDeep getNestedComponentsofTypeShallow getAllNestedComponents Use tail-recursion to minimize ArrayList creation while traversing deep lists getComponentsOfTypeDeep getAllNestedComponents findNestedComponentById pushObjectToContext Eliminate calls to build list for traversal by traversing directly findNestedComponentById Added method pushAllToContext() for adding all map entries to nested components with a single traversal. Changed updateContextForLine to use pushAllToContext() instead of multiple calls to pushObjectToContext() Converted sort loops to use foreach() form instead of index counter. Additional reductions included in the third pass: Converted Group and CollectionGroup initial lists to use Collections.emptyList() instead of new ArrayList(). Since the initial list is never modified, this solution reduces object creation without adding the risk of introducing NPE errors. Eliminated initial cssClasses and propertyReplacer lists from LayoutManagerBase, checked for NPE conditions. Added isEmpty() checks after null checks in copy() method in ComponentBase, Group, CollectionGroup, and LayoutManagerBase to skip creation of ArrayList when the source list is already empty. Converted getContext() calls to return an unmodifiable map, and initialized the context map to Collections.emptyMap(). This enforces the intended usage of the context map to ensure that operations on the context may be optimized with ComponentBase and LayoutManagerBase without side-effects. Added pushAllToContext() to LayoutManager interface, and corrected external modification of the context from ViewHelperServiceImpl to use this method instead.
          Mark Fyffe (Inactive) made changes -
          Remaining Estimate 1 hour [ 3600 ] 0 minutes [ 0 ]
          Time Spent 1 day, 1 hour [ 32400 ] 1 day, 3 hours [ 39600 ]
          Worklog Id 88453 [ 88453 ]
          Hide
          Mark Fyffe (Inactive) added a comment -

          Resolving issue.

          Add code review https://fisheye.kuali.org/cru/rice-288

          Show
          Mark Fyffe (Inactive) added a comment - Resolving issue. Add code review https://fisheye.kuali.org/cru/rice-288
          Mark Fyffe (Inactive) made changes -
          Status In Progress [ 3 ] Resolved [ 5 ]
          Resolution Complete [ 6 ]
          Hide
          Mark Fyffe (Inactive) added a comment -

          KULRICE-8797 has similar focus and some analysis performed already by Eric Westfal. Similar to Eric's findings, caching component lists and resuing components is not workable in the current state of UIF.

          Show
          Mark Fyffe (Inactive) added a comment - KULRICE-8797 has similar focus and some analysis performed already by Eric Westfal. Similar to Eric's findings, caching component lists and resuing components is not workable in the current state of UIF.
          Mark Fyffe (Inactive) made changes -
          Link This issue duplicates KULRICE-8797 [ KULRICE-8797 ]
          Mark Fyffe (Inactive) made changes -
          Link This issue relates to KULRICE-10679 [ KULRICE-10679 ]
          Jerry Neal (Inactive) made changes -
          Component/s Development [ 11244 ]
          Component/s User Experience (UX) [ 13465 ]
          Component/s Performance [ 13588 ]
          Jessica Coltrin (Inactive) made changes -
          Status Resolved [ 5 ] Closed [ 6 ]

            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