Uploaded image for project: 'Kuali Rice Development'
  1. Kuali Rice Development
  2. KULRICE-11927

Cannot add rule in KRMS agenda / rule editor page

    Details

    • Type: Bug Fix
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 2.4
    • Component/s: Development
    • Security Level: Public (Public: Anyone can view)
    • Labels:
      None
    • 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)
      

        Attachments

          Issue Links

            Activity

            Hide
            kbtaylor Kristina Taylor (Inactive) added a comment -

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

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

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

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

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

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

            Updating ticket description to include steps to repeat error

            Show
            mztaylor Martin Taylor (Inactive) added a comment - Updating ticket description to include steps to repeat error
            Hide
            mztaylor 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
            mztaylor 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
            mztaylor 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
            mztaylor 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
            mztaylor 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
            mztaylor 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
            gilesp Peter Giles (Inactive) added a comment -

            This issue is fixed by my commit for KULRICE-11927

            Show
            gilesp Peter Giles (Inactive) added a comment - This issue is fixed by my commit for KULRICE-11927
            Hide
            mztaylor 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
            mztaylor 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:
                mztaylor Martin Taylor (Inactive)
                Reporter:
                gilesp 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