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

Kim Permission document isn't able to edit permissions with KimType of 10 because it can't find the ParameterDetailType matching the namespace and componentName.

    Details

    • Type: Bug Fix Bug Fix
    • Status: Closed Closed
    • Priority: Major Major
    • Resolution: Cannot Reproduce
    • Affects Version/s: None
    • Fix Version/s: 1.0.3
    • Component/s: Development
    • Labels:
      None
    • Similar issues:
      KULRICE-3770Namespace and Exact match permission service not working properly
      KULRICE-4566Permission details can't be modified/created through KIM Permission screen
      KULRICE-12403Edit and Add permission and Responsibility links do not appear on Document Configuration Screen
      KULRICE-3984Cancel Document permission does not work
      KULRICE-4765Contribution: Namespace and String wildcard permission type
      KULRICE-7185Optimization of KIM Permission Checks
      KULRICE-7328Document that services in KimType table should contain namespaces
      KULRICE-4121Cannot edit permission record with a namespace detail value that has wildcard
      KULRICE-8252Permission check for super user tab seems to be using the wrong namespace
      KULRICE-13211Investigate attachmentTypeCode and KIM Permissions.

      Description

      This seems to be an issue with the maintenance document, and not the actual permissions, because the permissions do work, but don't pass validation on the document.

      To replicate this bug, start up rice using the 1.0.x data (not kfs dataset)

      Sign in as admin
      Go to Admin Tab
      Click on Permission
      Search for Permissions with a Permission Name of "Look Up*"
      Edit any of the Permissions that have a Parameter Component in the Permission Detail Values
      Try to submit the document (without changes) and it will fail with the following error:
      Attribute componentName is not valid: error.existence:Parameter Component;

      What seems to be happening is that the DictionaryValidationService's validateReferenceExistsAndIsActive method sees that we have all the foreign key fields for ParameterDetailType filled, and attempts to validate that the record exists using the BusinessObjectService. The issue with this when looking for ParameterDetailTypes is that the large majority of these aren't stored in the database, and instead are grabbed from the RiceApplicationConfigurationService.

      2010-04-08 09:01:15,838 [btpool0-8] u:user4/d: FATAL org.kuali.rice.core.database.KualiTransactionInterceptor - Exception caught by Transaction Interceptor, this will cause a rollback at the end of the transaction.
      org.kuali.rice.kns.exception.ValidationException: business rule evaluation failed
      at org.kuali.rice.kns.document.MaintenanceDocumentBase.validateBusinessRules(MaintenanceDocumentBase.java:735)
      at org.kuali.rice.kns.service.impl.DocumentServiceImpl.validateAndPersistDocument(DocumentServiceImpl.java:679)
      at org.kuali.rice.kns.service.impl.DocumentServiceImpl.routeDocument(DocumentServiceImpl.java:183)
      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.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:304)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:172)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:139)
      at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161)
      at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161)
      at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161)
      at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161)
      at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161)
      at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:203)
      at $Proxy50.routeDocument(Unknown Source)
      at org.kuali.rice.kns.web.struts.action.KualiDocumentActionBase.route(KualiDocumentActionBase.java:700)
      at org.kuali.rice.kns.web.struts.action.KualiMaintenanceDocumentAction.route(KualiMaintenanceDocumentAction.java:442)
      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.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:270)
      at org.kuali.rice.kns.web.struts.action.KualiAction.dispatchMethod(KualiAction.java:171)
      at org.kuali.rice.kns.web.struts.action.KualiAction.execute(KualiAction.java:122)
      at org.kuali.rice.kns.web.struts.action.KualiDocumentActionBase.execute(KualiDocumentActionBase.java:154)
      at org.kuali.rice.kns.web.struts.action.KualiMaintenanceDocumentAction.execute(KualiMaintenanceDocumentAction.java:97)
      at org.kuali.rice.kns.web.struts.action.KualiRequestProcessor$1.doInTransaction(KualiRequestProcessor.java:503)
      at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:127)
      at org.kuali.rice.kns.web.struts.action.KualiRequestProcessor.processActionPerform(KualiRequestProcessor.java:499)
      at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
      at org.kuali.rice.kns.web.struts.action.KualiRequestProcessor.process(KualiRequestProcessor.java:101)
      at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
      at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
      at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:491)
      at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1074)
      at org.kuali.rice.kew.web.UserLoginFilter.doFilter(UserLoginFilter.java:92)
      at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1065)
      at org.kuali.rice.kew.web.BootstrapFilterChain.doFilter(BootstrapFilter.java:305)
      at org.kuali.rice.kew.web.DummyLoginFilter.doFilter(DummyLoginFilter.java:88)
      at org.kuali.rice.kew.web.BootstrapFilterChain.doFilter(BootstrapFilter.java:298)
      at org.kuali.rice.kew.web.BootstrapFilter.doFilter(BootstrapFilter.java:166)
      at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1065)
      at org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125)
      at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1065)
      at org.kuali.rice.kns.web.filter.HideWebInfFilter.doFilter(HideWebInfFilter.java:66)
      at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1065)
      at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:365)
      at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:185)
      at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
      at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:689)
      at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:391)
      at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
      at org.mortbay.jetty.Server.handle(Server.java:285)
      at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:457)
      at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:765)
      at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:628)
      at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:209)
      at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:357)
      at org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:217)
      at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:475)

        Issue Links

          Activity

          Hide
          Jeremy Hanson added a comment -

          I think these might be related. Both seem to be happening because the values aren't directly found in the database.

          Show
          Jeremy Hanson added a comment - I think these might be related. Both seem to be happening because the values aren't directly found in the database.
          Hide
          Chad Hagstrom added a comment -

          I have been unable to reproduce the problem locally. It may have been fixed by the KULRICE-4121 changes.

          Show
          Chad Hagstrom added a comment - I have been unable to reproduce the problem locally. It may have been fixed by the KULRICE-4121 changes.

            People

            • Assignee:
              Chad Hagstrom
              Reporter:
              Jeremy Hanson
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Structure Helper Panel