Details

    • Type: Task Task
    • Status: Closed Closed
    • Priority: Critical Critical
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 2.5.2
    • Component/s: Performance
    • Security Level: Public (Public: Anyone can view)
    • Labels:
      None
    • Similar issues:
      KULRICE-14086Improvements for Key Personnel Page Rendering
      KULRICE-14085Improvements for Key Personnel Search
      KULRICE-7061Render lookup results by component refresh
      KULRICE-11146Improve visual treatment of dialogs
      KULRICE-1235Doc Search throws error - missing key
      KULRICE-4733Improve key values finder support
      KULRICE-786Improve the Rule Search screen
      KULRICE-843Improve wildcarding on all search screens
      KULRICE-4802Quickfinder error when searching for related object not by primary key
      KULRICE-8463allowing jstl key to be overriden
    • Epic Link:
    • Rice Module:
      KRAD
    • KRAD Feature Area:
      KIM Integration
    • Application Requirement:
      KC
    • Sprint:
      Middleware 2.5.2 Sprint 3, Middleware 2.5.2 Sprint 4
    • KAI Review Status:
      Not Required
    • KTI Review Status:
      Not Required
    • Code Review Status:
      Not Required
    • Include in Release Notes?:
      Yes
    • Story Points:
      3

      Description

      In Key Personnel search (for employee or non-employee) the rendering can be improved by changing to a light table or server side paging. Light table would be the first choice, but if that doesn't work (due to limitations in light table) look into using server side paging.

      In addition, set enableAutoInquiry=”false” on the collection result fields except where an inquiry is needed.

      1. KCProposal.patch
        3 kB
        Sona Sona
      2. KCProposalServerSidePaging.patch
        8 kB
        Sona Sona
      1. keypersonnnelAfter.jpg
        43 kB
      2. keypersonnnelBefore.jpg
        128 kB

        Issue Links

          Activity

          Hide
          Brian Smith (Inactive) added a comment -

          Sona if you add Kc-SendNotification-Wizard to dialogs property in ProposalDocumentView.xml it should fix this issue. We cannot allow dialogs that have refresh mechanisms to be dynamically requested. On that note id="PropBudget-ProjectPersonnelPage-Wizard" should be added to the budget view's dialog additionally.

          Show
          Brian Smith (Inactive) added a comment - Sona if you add Kc-SendNotification-Wizard to dialogs property in ProposalDocumentView.xml it should fix this issue. We cannot allow dialogs that have refresh mechanisms to be dynamically requested. On that note id="PropBudget-ProjectPersonnelPage-Wizard" should be added to the budget view's dialog additionally.
          Hide
          Brian Smith (Inactive) added a comment -

          On a separate note I committed the client state timing fix in the rice js and created/closed a jira for that.

          Show
          Brian Smith (Inactive) added a comment - On a separate note I committed the client state timing fix in the rice js and created/closed a jira for that.
          Hide
          Sona Sona (Inactive) added a comment -

          Brian, which is the budget's view xml?

          Show
          Sona Sona (Inactive) added a comment - Brian, which is the budget's view xml?
          Hide
          Sona Sona (Inactive) added a comment -

          After adding Kc-SendNotification-Wizard to dialogs property in ProposalDocumentView.xml server side paging works ok for personnel,budget and send notification. But this has caused 'Return to Proposal' to start failing. Clicking on this link gives the following error

          2015-01-13 22:57:59,699 [http-apr-8080-exec-6] u:admin/d:4154 ERROR org.kuali.rice.krad.web.controller.UifHandlerExceptionResolver - The following error was caught by the UifHandlerExceptionResolver : 
          java.lang.RuntimeException: Class to retrieve property from was null
          	at org.kuali.rice.krad.uif.util.ObjectPropertyUtils$ObjectPropertyMetadata.<init>(ObjectPropertyUtils.java:1127)
          	at org.kuali.rice.krad.uif.util.ObjectPropertyUtils$ObjectPropertyMetadata.<init>(ObjectPropertyUtils.java:979)
          	at org.kuali.rice.krad.uif.util.ObjectPropertyUtils.getMetadata(ObjectPropertyUtils.java:966)
          	at org.kuali.rice.krad.uif.util.ObjectPropertyUtils.getReadMethod(ObjectPropertyUtils.java:153)
          	at org.kuali.rice.krad.uif.util.ObjectPropertyReference$ReferencePathEntry.parse(ObjectPropertyReference.java:141)
          	at org.kuali.rice.krad.uif.util.ObjectPathExpressionParser$ParseState.step(ObjectPathExpressionParser.java:211)
          	at org.kuali.rice.krad.uif.util.ObjectPathExpressionParser$ParseState.access$600(ObjectPathExpressionParser.java:57)
          	at org.kuali.rice.krad.uif.util.ObjectPathExpressionParser.parsePathExpression(ObjectPathExpressionParser.java:361)
          	at org.kuali.rice.krad.uif.util.ObjectPropertyReference.resolvePath(ObjectPropertyReference.java:365)
          	at org.kuali.rice.krad.uif.util.ObjectPropertyUtils.isReadableProperty(ObjectPropertyUtils.java:584)
          	at org.kuali.rice.krad.uif.service.impl.ViewHelperServiceImpl.populateDefaultValueForField(ViewHelperServiceImpl.java:952)
          	at org.kuali.rice.krad.uif.service.impl.ViewHelperServiceImpl.applyDefaultValues(ViewHelperServiceImpl.java:821)
          	at org.kuali.rice.krad.uif.lifecycle.ViewLifecycleBuild.runApplyModelPhase(ViewLifecycleBuild.java:178)
          	
          

          Searching a proposal and clicking on edit or view also gives the same error.
          At first we thought that since Kc-Wizard has retreiveViaAjax set to true it should not be processed until it is requested. If retreiveViaAjax is true then it shouldSkipLifeCycle. So Brian suggested that we try and change ViewLifecycleUtils.getElementsForLifecycle() to not put the element in the queue if its a component and its skipLifecycle is true. But that does not work gives rise to a lot of other issues.
          Then I noticed that its failing when its trying to applyDefaultValues() during runApplyModelPhase which happens before the performPhase() happens.
          Right now it seems that there might be a bug ObjectPropertyReference.resolvePath(). Its able to resolve the PersonelResults and RolodexResults but it fails to resolve the RoleResults specifiically role.kimRoleType.name. My assumption is that because its three level deep while all the other properties like kcPerson.fullName are two level deep. Need to debug that.

          Show
          Sona Sona (Inactive) added a comment - After adding Kc-SendNotification-Wizard to dialogs property in ProposalDocumentView.xml server side paging works ok for personnel,budget and send notification. But this has caused 'Return to Proposal' to start failing. Clicking on this link gives the following error 2015-01-13 22:57:59,699 [http-apr-8080-exec-6] u:admin/d:4154 ERROR org.kuali.rice.krad.web.controller.UifHandlerExceptionResolver - The following error was caught by the UifHandlerExceptionResolver : java.lang.RuntimeException: Class to retrieve property from was null at org.kuali.rice.krad.uif.util.ObjectPropertyUtils$ObjectPropertyMetadata.<init>(ObjectPropertyUtils.java:1127) at org.kuali.rice.krad.uif.util.ObjectPropertyUtils$ObjectPropertyMetadata.<init>(ObjectPropertyUtils.java:979) at org.kuali.rice.krad.uif.util.ObjectPropertyUtils.getMetadata(ObjectPropertyUtils.java:966) at org.kuali.rice.krad.uif.util.ObjectPropertyUtils.getReadMethod(ObjectPropertyUtils.java:153) at org.kuali.rice.krad.uif.util.ObjectPropertyReference$ReferencePathEntry.parse(ObjectPropertyReference.java:141) at org.kuali.rice.krad.uif.util.ObjectPathExpressionParser$ParseState.step(ObjectPathExpressionParser.java:211) at org.kuali.rice.krad.uif.util.ObjectPathExpressionParser$ParseState.access$600(ObjectPathExpressionParser.java:57) at org.kuali.rice.krad.uif.util.ObjectPathExpressionParser.parsePathExpression(ObjectPathExpressionParser.java:361) at org.kuali.rice.krad.uif.util.ObjectPropertyReference.resolvePath(ObjectPropertyReference.java:365) at org.kuali.rice.krad.uif.util.ObjectPropertyUtils.isReadableProperty(ObjectPropertyUtils.java:584) at org.kuali.rice.krad.uif.service.impl.ViewHelperServiceImpl.populateDefaultValueForField(ViewHelperServiceImpl.java:952) at org.kuali.rice.krad.uif.service.impl.ViewHelperServiceImpl.applyDefaultValues(ViewHelperServiceImpl.java:821) at org.kuali.rice.krad.uif.lifecycle.ViewLifecycleBuild.runApplyModelPhase(ViewLifecycleBuild.java:178) Searching a proposal and clicking on edit or view also gives the same error. At first we thought that since Kc-Wizard has retreiveViaAjax set to true it should not be processed until it is requested. If retreiveViaAjax is true then it shouldSkipLifeCycle. So Brian suggested that we try and change ViewLifecycleUtils.getElementsForLifecycle() to not put the element in the queue if its a component and its skipLifecycle is true. But that does not work gives rise to a lot of other issues. Then I noticed that its failing when its trying to applyDefaultValues() during runApplyModelPhase which happens before the performPhase() happens. Right now it seems that there might be a bug ObjectPropertyReference.resolvePath(). Its able to resolve the PersonelResults and RolodexResults but it fails to resolve the RoleResults specifiically role.kimRoleType.name. My assumption is that because its three level deep while all the other properties like kcPerson.fullName are two level deep. Need to debug that.
          Hide
          Sona Sona (Inactive) added a comment - - edited

          The error only manifests when there is a three levels to the property path for e.g role.kimRoleType.name. So even though none of the ResultWizard properties should be processed, the error only comes for RoleResults. A long term proper fix might be to figure out how to prevent applydefaultvalue from running on components for which the lifecycle should be skipped.

          Show
          Sona Sona (Inactive) added a comment - - edited The error only manifests when there is a three levels to the property path for e.g role.kimRoleType.name. So even though none of the ResultWizard properties should be processed, the error only comes for RoleResults. A long term proper fix might be to figure out how to prevent applydefaultvalue from running on components for which the lifecycle should be skipped.

            People

            • Assignee:
              Sona Sona (Inactive)
              Reporter:
              Jerry Neal (Inactive)
            • Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Agile

                  Structure Helper Panel