Community
Participate
Working Groups
While debugging bug 566262 I've stumbled over this issue. org.eclipse.jdt.internal.core.search.processing.JobManager.processingThread & org.eclipse.jdt.internal.core.search.processing.JobManager.executing is not volatile but are accessed from multiple threads, not always inside synchronized blocks => the threads may see a stale, not up-to-date version of the objects. The code that uses this data in a wrong way is: org.eclipse.jdt.internal.core.search.processing.JobManager.discardJobs(String) org.eclipse.jdt.internal.core.search.processing.JobManager.shutdown() org.eclipse.jdt.internal.core.search.processing.JobManager.run() org.eclipse.jdt.internal.core.search.processing.JobManager.performConcurrentJob(IJob, int, IProgressMonitor) I will push a patch.
New Gerrit change created: https://git.eclipse.org/r/c/jdt/eclipse.jdt.core/+/171758
Gerrit change https://git.eclipse.org/r/c/jdt/eclipse.jdt.core/+/171758 was merged to [master]. Commit: http://git.eclipse.org/c/jdt/eclipse.jdt.core.git/commit/?id=014c422d5667c8e19d23e2a16b5fb1bf143a58a1
verified by code inspection