Details

    • Type: Bug Fix Bug Fix
    • Status: Closed Closed
    • Priority: Blocker Blocker
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 2.1.7
    • Component/s: Development
    • Security Level: Public (Public: Anyone can view)
    • Labels:
      None
    • Similar issues:
      KULRICE-7118KRMS Agenda copy creates extra AgendaItems
      KULRICE-7679KRMS: failed loading resources on Agenda
      KULRICE-6396Loading lightbox for edit Agenda link (on Agenda Lookup)
      KULRICE-7639Edit, Copy, or View Agenda in sampleapp yields stacktrace
      KULRICE-6290Agenda copy and submit is broken because Document Description is not set
      KULRICE-13210STE when attempting to open KRMS agenda doc from Doc Search
      KULRICE-9910Agenda editing fails when agenda items already exist
      KULRICE-13321KRMS agenda editor, field labels not rendered for propositions in edit mode
      KULRICE-5537Make edit & copy links for agenda lookup open the agenda editor
      KULRICE-6487Agenda Copy moves Agenda Items from old agenda to new agenda
    • Rice Module:
      KRMS
    • Application Requirement:
      KC
    • KAI Review Status:
      Not Required
    • KTI Review Status:
      Not Required
    • Include in Release Notes?:
      Yes

      Description

      These steps are to reproduce in Kuali Coeus. I tried to reproduce this in Rice but could never get an agenda to save because of an error message that read "Intended message with key: Invalid attribute value. not found." I tried various combinations in the proposition and nothing worked.

      1.Create a simple Agenda:
      Choose Namespace - Proposal Development
      enter Name - any name
      do context lookup - return PD context
      Choose type as Unit Agenda
      Unit Number: 000001
      Add Rule -
      Invalid Rule- invalid radial
      Enter rule name - any name

      2.Add Proposition -
      Add Description - any description
      Category - Function
      Term - Sponsor Rule
      Value - true

      3.Blanket Approve

      4.copy the Agenda
      Edit the copied Agenda by changing the Name
      Select copied rule
      Edit Rule, see STE

      Stacktrace (only in dev mode)
      java.lang.NullPointerException: Cannot invoke method getName() on null object at org.codehaus.groovy.runtime.NullObject.invokeMethod(NullObject.java:77) at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:45) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42) at org.codehaus.groovy.runtime.callsite.NullCallSite.call(NullCallSite.java:32) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42) at org.kuali.rice.krms.api.repository.type.KrmsAttributeDefinitionContract$getName$0.call(Unknown Source) at org.kuali.rice.krms.impl.repository.RuleBo.getAttributes(RuleBo.groovy:96) at org.kuali.rice.krms.impl.ui.AgendaEditorController.setAgendaItemLine(AgendaEditorController.java:172) at org.kuali.rice.krms.impl.ui.AgendaEditorController.goToEditRule(AgendaEditorController.java:222) at org.kuali.rice.krms.impl.ui.AgendaEditorController$$FastClassByCGLIB$$49b0d2b1.invoke(<generated>) at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:689) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:90) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:622) at org.kuali.rice.krms.impl.ui.AgendaEditorController$$EnhancerByCGLIB$$8385fd4f.goToEditRule(<generated>) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176) at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:436) at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:424) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:900) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:827) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789) at javax.servlet.http.HttpServlet.service(HttpServlet.java:637) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.kuali.rice.kew.web.UserPreferencesFilter.doFilter(UserPreferencesFilter.java:78) at org.kuali.rice.kew.web.UserPreferencesFilter.doFilter(UserPreferencesFilter.java:62) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.kuali.rice.kew.web.UserLoginFilter.doFilter(UserLoginFilter.java:89) at org.kuali.rice.kew.web.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.kew.web.BootstrapFilterChain.doFilter(BootstrapFilter.java:271) at org.jasig.cas.client.util.HttpServletRequestWrapperFilter.doFilter(HttpServletRequestWrapperFilter.java:75) at org.kuali.rice.kew.web.BootstrapFilterChain.doFilter(BootstrapFilter.java:264) at org.jasig.cas.client.validation.AbstractTicketValidationFilter.doFilter(AbstractTicketValidationFilter.java:201) at org.kuali.rice.kew.web.BootstrapFilterChain.doFilter(BootstrapFilter.java:264) at org.jasig.cas.client.authentication.AuthenticationFilter.doFilter(AuthenticationFilter.java:107) at org.kuali.rice.kew.web.BootstrapFilterChain.doFilter(BootstrapFilter.java:264) at org.jasig.cas.client.session.SingleSignOutFilter.doFilter(SingleSignOutFilter.java:76) at org.kuali.rice.kew.web.BootstrapFilterChain.doFilter(BootstrapFilter.java:264) at org.kuali.rice.kew.web.BootstrapFilter.doFilter(BootstrapFilter.java:162) 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:76) 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:69) 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:193) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) 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:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:291) at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190) at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:291) at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:776) at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:705) at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:898) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690) at java.lang.Thread.run(Thread.java:662)
      

      It looks like this stack trace is coming from the getAttributes method in RuleBO.groovy. While looping through the RuleAttributeBOs, inspite of having a legitimate attrbuteDefinitionId, the attr.getAttributeDefinition() call in line 97 returns null. Adding a statement to refreshReferenceobject fixes this.
      Proposed fix:

      RuleBO.groovy
       public Map<String, String> getAttributes() {
             HashMap<String, String> attributes = new HashMap<String, String>();
             for (RuleAttributeBo attr : attributeBos) {
             	   attr.refreshReferenceObject("attributeDefinition");
                 attributes.put( attr.getAttributeDefinition().getName(), attr.getValue() );
             }
             return attributes;
         }
      

        Activity

        Hide
        Gayathri Athreya added a comment -

        Fixed and jira closed in KC.

        Show
        Gayathri Athreya added a comment - Fixed and jira closed in KC.

          People

          • Assignee:
            Gayathri Athreya
            Reporter:
            Susan Sorensen
          • Votes:
            0 Vote for this issue
            Watchers:
            1 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

                Structure Helper Panel