"JbpmJUnitTestCase" is calling 'abortWorkItem' when task completes and thus it causes the 'task parameter' to 'process variable' mapping to fail

Solution Unverified - Updated -

Issue

  • We have a JUnit test class which extends JbpmJUnitTestCase where we are creating a TaskService like the following way:
  TaskService taskService = getTaskService(ksession); 

Everything goes well with claiming and starting the task like this:

  taskService.claim(task.getId(), "xxx",  groupIds);
  taskService.start(task.getId(), "xxx");

But after that we have observed that the task parameter to process variable mapping seems to be failing which results in a java.lang.NullPointerException, something like the one given below.

java.lang.NullPointerException
    at org.drools.bpmn2.Process_org_drools_bpmn2_Hello_World_2.action2(Process_org_drools_bpmn2_Hello_World_2.java:26)
    at org.drools.bpmn2.Process_org_drools_bpmn2_Hello_World_2Action2Invoker.execute(Process_org_drools_bpmn2_Hello_World_2Action2Invoker.java:16)
    at org.jbpm.workflow.instance.impl.ExtendedNodeInstanceImpl.executeAction(ExtendedNodeInstanceImpl.java:68)
    at org.jbpm.workflow.instance.impl.ExtendedNodeInstanceImpl.triggerEvent(ExtendedNodeInstanceImpl.java:58)
    at org.jbpm.workflow.instance.impl.ExtendedNodeInstanceImpl.triggerCompleted(ExtendedNodeInstanceImpl.java:46)
    at org.jbpm.workflow.instance.node.StateBasedNodeInstance.triggerCompleted(StateBasedNodeInstance.java:162)
    at org.jbpm.workflow.instance.node.StateBasedNodeInstance.triggerCompleted(StateBasedNodeInstance.java:143)
    at org.jbpm.workflow.instance.node.WorkItemNodeInstance.triggerCompleted(WorkItemNodeInstance.java:239)
    at org.jbpm.workflow.instance.node.HumanTaskNodeInstance.triggerCompleted(HumanTaskNodeInstance.java:90)
    at org.jbpm.workflow.instance.node.WorkItemNodeInstance.workItemAborted(WorkItemNodeInstance.java:293)
    at org.jbpm.workflow.instance.node.WorkItemNodeInstance.signalEvent(WorkItemNodeInstance.java:279)
    at org.jbpm.workflow.instance.impl.WorkflowProcessInstanceImpl.signalEvent(WorkflowProcessInstanceImpl.java:338)
    at org.drools.persistence.jpa.processinstance.JPAWorkItemManager.abortWorkItem(JPAWorkItemManager.java:154)
    at org.drools.command.runtime.process.AbortWorkItemCommand.execute(AbortWorkItemCommand.java:56)
    at org.drools.command.runtime.process.AbortWorkItemCommand.execute(AbortWorkItemCommand.java:29)
    at org.drools.command.impl.DefaultCommandService.execute(DefaultCommandService.java:36)
    at org.drools.persistence.SingleSessionCommandService.execute(SingleSessionCommandService.java:355)
    at org.drools.command.impl.CommandBasedStatefulKnowledgeSession$1.abortWorkItem(CommandBasedStatefulKnowledgeSession.java:156)
    at org.jbpm.process.workitem.wsht.SyncWSHumanTaskHandler$TaskCompletedHandler.handleCompletedTask(SyncWSHumanTaskHandler.java:378)
    at org.jbpm.process.workitem.wsht.SyncWSHumanTaskHandler$TaskCompletedHandler.execute(SyncWSHumanTaskHandler.java:319)
    at org.jbpm.task.service.local.LocalTaskService$SimpleEventTransport.trigger(LocalTaskService.java:287)
    at org.jbpm.task.event.MessagingTaskEventListener.taskCompleted(MessagingTaskEventListener.java:73)
    at org.jbpm.task.event.TaskEventSupport.fireTaskCompleted(TaskEventSupport.java:47)
    at org.jbpm.task.service.TaskServiceSession.postTaskCompleteOperation(TaskServiceSession.java:502)
    at org.jbpm.task.service.TaskServiceSession.taskOperation(TaskServiceSession.java:469)
    at org.jbpm.task.service.local.LocalTaskService.complete(LocalTaskService.java:76)
    at com.sample.TestingProcess_BUG.testProcess(TestingProcess_BUG.java:113)
        ...

Can you please guide us how to solve this issue?

Environment

  • JBoss Enterprise Business Rules Rules Management System Platform (BRMS)
    • 5.3.0
  • jBPM
    • 5.2

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content