Hide Forgot
Description of problem: The following code will throw the stack trace in 'Stack-Trace:' section. Initialization of the RemoteRuntimeEngineFactory was made to create a JMS client. RemoteRuntimeEngineFactory factory = new RemoteJmsRuntimeEngineFactory(/* ... */); RuntimeEngine runtimeEngine = factory.newRuntimeEngine(); KieSession kieSession = runtimeEngine.getKieSession(); kieSession.startProcess("processId", null); Stack-Trace: java.lang.NullPointerException at org.kie.services.client.api.command.AbstractRemoteCommandObject.executeJmsCommand(AbstractRemoteCommandObject.java:155) at org.kie.services.client.api.command.AbstractRemoteCommandObject.execute(AbstractRemoteCommandObject.java:80) at org.drools.core.command.impl.CommandBasedStatefulKnowledgeSession.startProcess(CommandBasedStatefulKnowledgeSession.java:229) at org.perfcake.message.sender.jbpm.KieSessionBasedSender.doSend(KieSessionBasedSender.java:44) at org.perfcake.message.sender.AbstractSender.send(AbstractSender.java:102) at org.perfcake.message.generator.SenderTask.run(SenderTask.java:125) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) at java.util.concurrent.FutureTask.run(FutureTask.java:166) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:724)
This was fixed along the way by a number of small commits. This method here: https://github.com/droolsjbpm/droolsjbpm-integration/blob/6.0.x/kie-remote/kie-services-remote/src/main/java/org/kie/services/remote/jms/RequestMessageBean.java#L253 now makes sure that the NPE doesn't happen.
Verified in BPMS 6.0.0.ER4