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

Cannot add rule in KRMS agenda / rule editor page

    Details

    • Type: Bug Fix Bug Fix
    • Status: Closed Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 2.4
    • Component/s: Development
    • Security Level: Public (Public: Anyone can view)
    • Labels:
      None
    • Similar issues:
      KULRICE-12740KRMS Agenda cannot add a rule
      KULRICE-5123Create krms agenda & rule editor skeleton
      KULRICE-12036KRMS - Adding rule returns blank screen
      KULRICE-13961Fill AFT Gap: KRMS Rules - Agenda Editor (Copy Rule)
      KULRICE-11409KRMS - Cannot delete or update additional False rule from rule editor
      KULRICE-6804Javascript on document.ready or equivalent for KRAD (sub) Pages, like the Agenda Rule Editor Page.
      KULRICE-5574Create Agenda Rule
      KULRICE-11415KRMS: Rules: cannot save more than 2 rules
      KULRICE-5913Edit Rule page should offer some information as to what Agenda we are in.
      KULRICE-13889Fill AFT Gap: KRMS Rules - Agenda Editor (AND/OR toggle sync)
    • Sprint:
      2.4.0-rc1 Sprint 1, 2.4.0-rc1 Sprint 2, 2.4.0-rc1 Sprint 3, 2.4.0-rc1 Sprint 4, 2.4.0-rc1 Sprint 5
    • KAI Review Status:
      Not Required
    • KTI Review Status:
      Not Required
    • Code Review Status:
      Not Required
    • Include in Release Notes?:
      Yes

      Description

      When creating a new Rule in the Agenda Editor, clicking the Add button results in a blank page and several stack traces in the app server log starting with this one:

      Steps to repeat:
      Open rice portal
      Login as admin
      Select Main Tab - Agenda Lookup link
      Perform Search
      Select 'edit' link on One Big Rule element
      Select 'Add Rule' element
      Select 'validation rule' in Rule Type Dropdown
      Select 'add' button for proposition
      See blank screen - check logs for error

      java.lang.NullPointerException
      	at org.kuali.rice.krad.service.impl.KRADLegacyDataAdapterImpl.getDictionaryRelationship(KRADLegacyDataAdapterImpl.java:755)
      	at org.kuali.rice.krad.service.impl.KRADLegacyDataAdapterImpl.getDataObjectRelationship(KRADLegacyDataAdapterImpl.java:939)
      	at org.kuali.rice.krad.service.impl.KRADLegacyDataAdapterImpl.getDataObjectRelationship(KRADLegacyDataAdapterImpl.java:977)
      	at org.kuali.rice.krad.service.impl.LegacyDataAdapterImpl.getDataObjectRelationship(LegacyDataAdapterImpl.java:315)
      	at org.kuali.rice.krad.uif.widget.QuickFinder.getRelationshipForField(QuickFinder.java:200)
      	at org.kuali.rice.krad.uif.widget.QuickFinder.setupForInputField(QuickFinder.java:151)
      	at org.kuali.rice.krad.uif.widget.QuickFinder.performFinalize(QuickFinder.java:132)
      	at org.kuali.rice.krad.uif.lifecycle.finalize.ComponentDefaultFinalizeTask.performLifecycleTask(ComponentDefaultFinalizeTask.java:55)
      	at org.kuali.rice.krad.uif.lifecycle.ViewLifecycleTaskBase.run(ViewLifecycleTaskBase.java:112)
      	at org.kuali.rice.krad.uif.lifecycle.ViewLifecyclePhaseBase.run(ViewLifecyclePhaseBase.java:190)
      	at org.kuali.rice.krad.uif.lifecycle.SynchronousViewLifecycleProcessor.performPhase(SynchronousViewLifecycleProcessor.java:99)
      	at org.kuali.rice.krad.uif.lifecycle.ViewLifecycleBuild.runFinalizePhase(ViewLifecycleBuild.java:208)
      	at org.kuali.rice.krad.uif.lifecycle.ViewLifecycleBuild.run(ViewLifecycleBuild.java:76)
      	at org.kuali.rice.krad.uif.lifecycle.ViewLifecycle.encapsulateLifecycle(ViewLifecycle.java:140)
      	at org.kuali.rice.krad.uif.lifecycle.ViewLifecycle.performComponentLifecycle(ViewLifecycle.java:222)
      	at org.kuali.rice.krad.web.controller.UifControllerHelper.prepareViewForRendering(UifControllerHelper.java:168)
      	at org.kuali.rice.krad.web.controller.UifControllerHelper.postControllerHandle(UifControllerHelper.java:140)
      	at org.kuali.rice.krad.web.controller.UifControllerHandlerInterceptor.postHandle(UifControllerHandlerInterceptor.java:87)
      	at org.springframework.web.servlet.HandlerExecutionChain.applyPostHandle(HandlerExecutionChain.java:149)
      	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:934)
      	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.doPost(FrameworkServlet.java:838)
      	at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
      	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812)
      	at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
      	at org.kuali.rice.krad.web.filter.CharsetFilter.doFilter(CharsetFilter.java:58)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
      	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:243)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
      	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:243)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
      	at org.kuali.rice.krad.web.filter.UifSessionTimeoutFilter.doFilter(UifSessionTimeoutFilter.java:128)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
      	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:243)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
      	at org.kuali.rice.krad.web.filter.HideWebInfFilter.doFilter(HideWebInfFilter.java:68)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
      	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:243)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
      	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
      	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
      	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
      	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
      	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
      	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563)
      	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
      	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:399)
      	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:317)
      	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:204)
      	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:311)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
      	at java.lang.Thread.run(Thread.java:662)
      

        Issue Links

          Activity

          Hide
          Kristina Taylor (Inactive) added a comment -

          I'm unable to reproduce this anymore, can you confirm?

          Show
          Kristina Taylor (Inactive) added a comment - I'm unable to reproduce this anymore, can you confirm?
          Hide
          Martin Taylor (Inactive) added a comment -

          This issue (if it exists) is being masked by error in KULRICE-11996

          Show
          Martin Taylor (Inactive) added a comment - This issue (if it exists) is being masked by error in KULRICE-11996
          Hide
          Martin Taylor (Inactive) added a comment -

          issue related to KULRICE-11996 looks to be resolved in env1.

          Show
          Martin Taylor (Inactive) added a comment - issue related to KULRICE-11996 looks to be resolved in env1.
          Hide
          Martin Taylor (Inactive) added a comment -

          Updating ticket description to include steps to repeat error

          Show
          Martin Taylor (Inactive) added a comment - Updating ticket description to include steps to repeat error
          Hide
          Martin Taylor (Inactive) added a comment -

          before error described above, logs show

          2014-02-27 16:19:56,105 [http-bio-8080-exec-19] u:admin/d: INFO  org.kuali.rice.krad.uif.lifecycle.ViewLifecycleBuild - performing finalize phase for view: Editor-MaintenanceView
          2014-02-27 16:20:00,663 [http-bio-8080-exec-20] u:admin/d: WARN  org.kuali.rice.krad.web.bind.UifServletRequestDataBinder - Encountered an auto linking target that is not a valid data object: class org.kuali.rice.krms.impl.ui.AgendaEditor
          2014-02-27 16:20:00,788 [http-bio-8080-exec-20] u:admin/d: WARN  org.kuali.rice.krad.uif.view.ViewIndex - view reference at Editor-MaintenanceView=org.kuali.rice.krad.uif.view.MaintenanceDocumentView@2ebd49fb
          2014-02-27 16:20:00,977 [http-bio-8080-exec-20] u:admin/d: INFO  org.kuali.rice.krad.uif.lifecycle.ViewLifecycleBuild - performing initialize phase for view: Editor-MaintenanceView
          2014-02-27 16:20:01,050 [http-bio-8080-exec-20] u:admin/d: WARN  org.kuali.rice.krad.uif.util.ObjectPropertyReference - java.lang.IllegalArgumentException: No property name 'proposition' is readable or writable on class org.kuali.rice.krms.impl.ui.AgendaEditor
          
          Show
          Martin Taylor (Inactive) added a comment - before error described above, logs show 2014-02-27 16:19:56,105 [http-bio-8080-exec-19] u:admin/d: INFO org.kuali.rice.krad.uif.lifecycle.ViewLifecycleBuild - performing finalize phase for view: Editor-MaintenanceView 2014-02-27 16:20:00,663 [http-bio-8080-exec-20] u:admin/d: WARN org.kuali.rice.krad.web.bind.UifServletRequestDataBinder - Encountered an auto linking target that is not a valid data object: class org.kuali.rice.krms.impl.ui.AgendaEditor 2014-02-27 16:20:00,788 [http-bio-8080-exec-20] u:admin/d: WARN org.kuali.rice.krad.uif.view.ViewIndex - view reference at Editor-MaintenanceView=org.kuali.rice.krad.uif.view.MaintenanceDocumentView@2ebd49fb 2014-02-27 16:20:00,977 [http-bio-8080-exec-20] u:admin/d: INFO org.kuali.rice.krad.uif.lifecycle.ViewLifecycleBuild - performing initialize phase for view: Editor-MaintenanceView 2014-02-27 16:20:01,050 [http-bio-8080-exec-20] u:admin/d: WARN org.kuali.rice.krad.uif.util.ObjectPropertyReference - java.lang.IllegalArgumentException: No property name 'proposition' is readable or writable on class org.kuali.rice.krms.impl.ui.AgendaEditor
          Hide
          Martin Taylor (Inactive) added a comment -

          When building out the input fields for adding a proposition, the data adapter failure occurs when trying to find a relationship between proposition.id (in RuleMaintenance.xml) and AgendaEditor.

          Show
          Martin Taylor (Inactive) added a comment - When building out the input fields for adding a proposition, the data adapter failure occurs when trying to find a relationship between proposition.id (in RuleMaintenance.xml) and AgendaEditor.
          Hide
          Martin Taylor (Inactive) added a comment -

          issue with proposition.id is caused by getParentPath is failing due to the propertyPrefix is set to null (in 2.3 it retrieves the propertyTree path)

          Show
          Martin Taylor (Inactive) added a comment - issue with proposition.id is caused by getParentPath is failing due to the propertyPrefix is set to null (in 2.3 it retrieves the propertyTree path)
          Hide
          Peter Giles (Inactive) added a comment -

          This issue is fixed by my commit for KULRICE-11927

          Show
          Peter Giles (Inactive) added a comment - This issue is fixed by my commit for KULRICE-11927
          Hide
          Martin Taylor (Inactive) added a comment - - edited

          The primary issue is resolved though I'm noticed errors when processing the add rule, there are errors when trying to read the proposition data from rule editor tree's componentPrototype (comoponentPrototypes[3].items[1].inputDataField) at the initialization phase (initializeDataFieldFromDictionaryTask). I'm trying to decide whether it should be called at all as it is searching for a nested object which is part of componentPrototypes and getComponentPrototypes has a view lifecycle restriction on initialize phase.

          It doesnt appear to be causing an issue. I'll close this for now and add a different ticket.

          Show
          Martin Taylor (Inactive) added a comment - - edited The primary issue is resolved though I'm noticed errors when processing the add rule, there are errors when trying to read the proposition data from rule editor tree's componentPrototype (comoponentPrototypes [3] .items [1] .inputDataField) at the initialization phase (initializeDataFieldFromDictionaryTask). I'm trying to decide whether it should be called at all as it is searching for a nested object which is part of componentPrototypes and getComponentPrototypes has a view lifecycle restriction on initialize phase. It doesnt appear to be causing an issue. I'll close this for now and add a different ticket.

            People

            • Assignee:
              Martin Taylor (Inactive)
              Reporter:
              Peter Giles (Inactive)
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Time Tracking

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

                  Agile

                    Structure Helper Panel