cadence-java-client icon indicating copy to clipboard operation
cadence-java-client copied to clipboard

null pointer exception thrown for worker when setting to true flag DisableWorkflowWorker

Open cipri7329 opened this issue 5 years ago • 0 comments

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);
     }

cipri7329 avatar Feb 21 '20 07:02 cipri7329