0 Replies Latest reply on Sep 15, 2014 10:06 PM by jblinick

    Boundary Timer Failing

    jblinick

      Hi,

       

      I'm running into a problem with the boundary timer. It has taken me the better part of a day to isolate it, but I think I have found the problem.  I'm hoping someone could help explain why it is happening.  My environment is Jbpm 6.1.Final, and I'm running it on Wildfly 8.1 using Container Managed Transactions.

       

      When my boundary event fires, I trace it all the way to WorkItemNodeInstance.internalTrigger line 133

       

                  try {

                      ((WorkItemManager) ((ProcessInstance) getProcessInstance())

                          .getKnowledgeRuntime().getWorkItemManager()).internalExecuteWorkItem(

                              (org.drools.core.process.instance.WorkItem) workItem);

                  } catch (WorkItemHandlerNotFoundException wihnfe){

                      getProcessInstance().setState( ProcessInstance.STATE_ABORTED );

                      throw wihnfe;

                  } catch (Exception e) {

       

      getProcessInstance().getKnowledgeRuntime() returns null, as it appears that the kruntime wasn't set for the process instance.  I'm not sure how/why that happens, and I can only assume that it should always be set.

       

      As a side note, because this is run from a timer, this exception gets swallowed, which made it very hard to find.  A log statement would be very helpful

       

      I'm using the Singleton RuntimeEngine.

       

       

      I appreciate any help,  Thanks in advance,

       

      Josh

       

      ps, partial stack trace:

      HumanTaskNodeInstance(WorkItemNodeInstance).internalTrigger(NodeInstance, String) line: 133
      HumanTaskNodeInstance(NodeInstanceImpl).trigger(NodeInstance, String) line: 162
      BoundaryEventNodeInstance(NodeInstanceImpl).triggerNodeInstance(NodeInstance, String) line: 354
      BoundaryEventNodeInstance(NodeInstanceImpl).triggerCompleted(String, boolean) line: 313
      BoundaryEventNodeInstance(ExtendedNodeInstanceImpl).triggerCompleted(String, boolean) line: 44
      BoundaryEventNodeInstance(EventNodeInstance).triggerCompleted() line: 73
      BoundaryEventNodeInstance(EventNodeInstance).signalEvent(String, Object) line: 54
      BoundaryEventNodeInstance.signalEvent(String, Object) line: 45
      RuleFlowProcessInstance(WorkflowProcessInstanceImpl).signalEvent(String, Object) line: 418