Boundary Timer Failing
jblinick Sep 15, 2014 10:06 PMHi,
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 |