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

Future Action Requests tab does not work when using standalone Rice server

    Details

    • Type: Bug Fix Bug Fix
    • Status: Closed Closed
    • Priority: Blocker Blocker
    • Resolution: Fixed
    • Affects Version/s: 2.0.2, 2.1
    • Fix Version/s: 2.1.1
    • Component/s: Development
    • Security Level: Public (Public: Anyone can view)
    • Labels:
      None
    • Similar issues:
      KULRICE-2729The "Future Action Requests" tab on the Route Log does not work properly with a client application using "embedded" mode
      KULRICE-12117Problems with "Future Action Requests" involving initiator routing
      KULRICE-3603After a document is saved but before it is routed, the "Future Action Requests" tab on the doc's route log does not display any of the ad hoc requests
      KULRICE-3978time/date is irrelevant for future action requests
      KULRICE-2838Error in Future Action Requests tab when no future actions exist.
      KULRICE-6993KNS Infrastructure not supporting quickfinder lookups against standalone Rice server
      KULRICE-9899Add documentation to IG on how to configure an application to work with Rice standalone server
      KULRICE-4110Externalizable BO lookups and inquiries don't work with standalone Rice
      KULRICE-2855Document Kuali Rice Standalone Server installation and configuration
      KULRICE-4622When running with standalone Rice, ImmediateEmailService never runs locally
    • Rice Module:
      KEW
    • Application Requirement:
      KFS, KC
    • KAI Review Status:
      Not Required
    • KTI Review Status:
      Not Required

      Description

      There seems to be a problem with displaying the "Future Action Requests" tab in the route log for KFS documents when using standalone Rice. A stack trace like the below appears in the logs:

      I'm wondering if this is in part because the RouteLog is running on the Rice server, but KFS workflow normally runs on the KFS embedded instance of KEW. I'm also wondering about the implementation in TransitionEngineFactory which does not check for RequestsNode type nodes and the RouteHelper class whose check for isRequestsNode does not use {[ClassLoaderUtils}} like all the other methods in that class.

      Caused by: org.kuali.rice.kew.api.exception.DocumentSimulatedRouteException: Error running simulation for document id 3392
      	at org.kuali.rice.kew.engine.simulation.SimulationEngine.process(SimulationEngine.java:176)
      	at org.kuali.rice.kew.engine.simulation.SimulationEngine.runSimulation(SimulationEngine.java:99)
      	at org.kuali.rice.kew.routemodule.service.impl.RoutingReportServiceImpl.report(RoutingReportServiceImpl.java:31)
      	... 71 more
      Caused by: org.kuali.rice.kew.api.exception.WorkflowException: Could not locate transition engine for node org.kuali.rice.kew.engine.node.RoleNode
      	at org.kuali.rice.kew.engine.transition.TransitionEngineFactory.createTransitionEngine(TransitionEngineFactory.java:48)
      	at org.kuali.rice.kew.engine.StandardWorkflowEngine.processNodeInstance(StandardWorkflowEngine.java:181)
      	at org.kuali.rice.kew.engine.simulation.SimulationEngine.process(SimulationEngine.java:155)
      	... 73 more
      

        Issue Links

          Activity

          Hide
          Eric Westfall added a comment -

          Problem here is in the route log action. It's using getWorkflowDocumentActionsService on KewApiServiceLocator but should be loading the appropriate WorkflowDocumentActionsService from the ServiceBus using the application id on the document type that's being simulated.

          Show
          Eric Westfall added a comment - Problem here is in the route log action. It's using getWorkflowDocumentActionsService on KewApiServiceLocator but should be loading the appropriate WorkflowDocumentActionsService from the ServiceBus using the application id on the document type that's being simulated.
          Hide
          Jonathan Keller added a comment -

          Thanks Eric. I knew it would need to be something like that. I just didn't know there was an existing way to call for a document simulation on another server.

          Show
          Jonathan Keller added a comment - Thanks Eric. I knew it would need to be something like that. I just didn't know there was an existing way to call for a document simulation on another server.
          Hide
          Peter Giles (Inactive) added a comment -

          Bumping the priority to "Blocker" for this issue on KC's behalf.

          Show
          Peter Giles (Inactive) added a comment - Bumping the priority to "Blocker" for this issue on KC's behalf.
          Hide
          Eric Westfall added a comment -

          We fixed this here at IU yesterday. You should talk to Greg Patterson and see if he's committed the fix back to 2.1.1 yet.

          Show
          Eric Westfall added a comment - We fixed this here at IU yesterday. You should talk to Greg Patterson and see if he's committed the fix back to 2.1.1 yet.
          Hide
          Greg Patterson (Inactive) added a comment -

          The IU jira should show up in a trackback, but we have made a fix at IU for this and I'll contribute it here shortly.

          To answer a couple questions:

          Jonathan, you're on the right track with your concern over what instance this is running in. As Eric mentioned, a callback needs to happen if the application ID on the document is something other than rice/null in order to retrieve the WorkflowDocumentActionsService in the client application instead of the standalone one. That allows the resource loader to properly retrieve objects since it's running in the appropriate classloader in case of application specific node types.

          Also, with regards to the RequestsNode and TransitionEngineFactory implementation question: it is correct, at least as far as I can tell. I had the same question as well, but RequestsNode actually extends SimpleNode so that first (isSimpleNode) check should catch it. (To be technically correct RequestsNode extends RequestActivationNode which extends RequestActivationNodeBase which implements SimpleNode)

          -Greg

          Show
          Greg Patterson (Inactive) added a comment - The IU jira should show up in a trackback, but we have made a fix at IU for this and I'll contribute it here shortly. To answer a couple questions: Jonathan, you're on the right track with your concern over what instance this is running in. As Eric mentioned, a callback needs to happen if the application ID on the document is something other than rice/null in order to retrieve the WorkflowDocumentActionsService in the client application instead of the standalone one. That allows the resource loader to properly retrieve objects since it's running in the appropriate classloader in case of application specific node types. Also, with regards to the RequestsNode and TransitionEngineFactory implementation question: it is correct, at least as far as I can tell. I had the same question as well, but RequestsNode actually extends SimpleNode so that first (isSimpleNode) check should catch it. (To be technically correct RequestsNode extends RequestActivationNode which extends RequestActivationNodeBase which implements SimpleNode) -Greg
          Hide
          Jeremy Hanson added a comment -

          reassigning to Greg

          Show
          Jeremy Hanson added a comment - reassigning to Greg
          Hide
          Greg Patterson (Inactive) added a comment -

          Fix committed

          Show
          Greg Patterson (Inactive) added a comment - Fix committed
          Hide
          Jonathan Keller added a comment -

          Looks good. Thanks!

          Show
          Jonathan Keller added a comment - Looks good. Thanks!

            People

            • Assignee:
              Greg Patterson (Inactive)
              Reporter:
              Jonathan Keller
            • Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Structure Helper Panel