Details
Description
Occasionally the following exception is encountered:
2018-03-28 12:53:57,390 [] [midPointScheduler_QuartzSchedulerThread] ERROR (org.quartz.core.QuartzSchedulerThread): quartzSchedulerThreadLoop: RuntimeException null java.lang.NullPointerException: null at org.quartz.simpl.SimpleThreadPool.getRunningJobsPerExecutionGroup(SimpleThreadPool.java:405) at org.quartz.core.QuartzSchedulerThread.computeAvailableExecutionGroupsLimits(QuartzSchedulerThread.java:451) at org.quartz.core.QuartzSchedulerThread.run(QuartzSchedulerThread.java:288)
It looks like WorkerThread.runnable can be cleared without being protected by nextRunnableLock (SimpleThreadPool:607); protected only by internal WorkerThread.lock object. We could e.g. try to obtain execution group under that inner lock. Or to keep the value in a separate variable.