NullPointerException is thrown when using ProcessService to issue signal event in JBoss BPM Suite 6.2

Solution Verified - Updated -

Environment

  • Red Hat JBoss BPM Suite (BPMS) 6.2.0, 6.2.1

Issue

A NullPointerException is thrown when the following code is used to issue the signal event:

 processService.signalProcessInstance(pi.getId(), ROUTING_EXCEPTION, null);

The stack trace is:

Caused by: java.lang.NullPointerException
    at org.kie.spring.persistence.AbstractKieSpringJpaManager$EmHolderDelegateInvocationHandler.invoke(AbstractKieSpringJpaManager.java:141) [kie-spring-6.3.0.Final-redhat-5.jar:6.3.0.Final-redhat-5]
    at com.sun.proxy.$Proxy67.joinTransaction(Unknown Source)
    at org.jbpm.process.audit.JPAWorkingMemoryDbLogger.joinTransaction(JPAWorkingMemoryDbLogger.java:246) [jbpm-audit-6.3.0.Final-redhat-5.jar:6.3.0.Final-redhat-5]
    at org.jbpm.process.audit.JPAWorkingMemoryDbLogger.persist(JPAWorkingMemoryDbLogger.java:195) [jbpm-audit-6.3.0.Final-redhat-5.jar:6.3.0.Final-redhat-5]
    at org.jbpm.process.audit.JPAWorkingMemoryDbLogger.afterNodeLeft(JPAWorkingMemoryDbLogger.java:120) [jbpm-audit-6.3.0.Final-redhat-5.jar:6.3.0.Final-redhat-5]
    at org.drools.core.event.ProcessEventSupport.fireAfterNodeLeft(ProcessEventSupport.java:124) [drools-core-6.3.0.Final-redhat-5.jar:6.3.0.Final-redhat-5]
    at org.jbpm.workflow.instance.impl.NodeInstanceImpl.triggerNodeInstance(NodeInstanceImpl.java:375) [jbpm-flow-6.3.0.Final-redhat-5.jar:6.3.0.Final-redhat-5]
    at org.jbpm.workflow.instance.impl.NodeInstanceImpl.triggerCompleted(NodeInstanceImpl.java:325) [jbpm-flow-6.3.0.Final-redhat-5.jar:6.3.0.Final-redhat-5]
    at org.jbpm.workflow.instance.node.ActionNodeInstance.triggerCompleted(ActionNodeInstance.java:61) [jbpm-flow-6.3.0.Final-redhat-5.jar:6.3.0.Final-redhat-5]
    at org.jbpm.workflow.instance.node.ActionNodeInstance.internalTrigger(ActionNodeInstance.java:57) [jbpm-flow-6.3.0.Final-redhat-5.jar:6.3.0.Final-redhat-5]
    at org.jbpm.workflow.instance.impl.NodeInstanceImpl.trigger(NodeInstanceImpl.java:173) [jbpm-flow-6.3.0.Final-redhat-5.jar:6.3.0.Final-redhat-5]
    ... 50 more

Resolution

Please apply Red Hat JBoss BPM Suite 6.2 Update 2 to fix the issue or upgrade to a newer version.

Root Cause

The problem is caused by the current implementation in org.jbpm.kie.services.impl.ProcessServiceImpl. Note that it disposes the runtime engine after sending the signal event:

      try {
           ksession.signalEvent(signalName, event, processInstanceId);
       } finally {
        disposeRuntimeEngine(manager, engine);
       }

So the disposeRuntimeEngine needs to be fixed actually on runtime manager level to handle it properly for all possible cases.

It has been reported in BZ-1304496.

This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.

Close

Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.