cadence-java-client
cadence-java-client copied to clipboard
null pointer exception thrown for worker when setting to true flag DisableWorkflowWorker
Inside a Spring application I have a WorkerFactory
Worker.Factory factory = new Worker.Factory(domain);
I want to create two workers, one to handle the Workflows, and one to handle the Activities.
// I set the disableActivityWorker to true
WorkerOptions workflowWorkerOptions = new WorkerOptions.Builder().setDisableActivityWorker(true).build();
Worker workflowsWorker = factory.newWorker(taskList, workflowWorkerOptions);
// I set the disableWorkflowWorker to true
WorkerOptions activityWorkerOptions = new WorkerOptions.Builder().setDisableWorkflowWorker(true).build();
Worker activitiesWorker = factory.newWorker(taskList, activityWorkerOptions);
The last line
Worker activitiesWorker = factory.newWorker(taskList, activityWorkerOptions);
crashes with
java.lang.NullPointerException
at java.util.concurrent.ConcurrentHashMap.putVal(ConcurrentHashMap.java:1011)
at java.util.concurrent.ConcurrentHashMap.put(ConcurrentHashMap.java:1006)
at com.uber.cadence.internal.worker.PollDecisionTaskDispatcher.subscribe(PollDecisionTaskDispatcher.java:87)
at com.uber.cadence.worker.Worker$Factory.newWorker(Worker.java:606)
By reading the code in in Worker.java at line 606
I see that worker.workflowWorker is null, which is expected because I set the flag to true on disableWorkflowWorker
if (!this.factoryOptions.disableStickyExecution) {
dispatcher.subscribe(taskList, worker.workflowWorker);
}