Community
Participate
Working Groups
Another MT issue I've stumbled upon while debugging bug 566262. A common pattern in the JDT indexer code is to check if there is already an indexing request for same library pending and to submit after that check. However, the check is not atomic, means it is not inside any synchronized code: if (!isJobWaiting(request)) request(request); Any thread can add new request between if condition is evaluated and request() call. See for example org.eclipse.jdt.internal.core.search.indexing.IndexManager.indexLibrary(IPath, IProject, URL, boolean)
I will push a patch.
New Gerrit change created: https://git.eclipse.org/r/c/jdt/eclipse.jdt.core/+/171749
Gerrit change https://git.eclipse.org/r/c/jdt/eclipse.jdt.core/+/171749 was merged to [master]. Commit: http://git.eclipse.org/c/jdt/eclipse.jdt.core.git/commit/?id=b4d86b5c6c1cc5feef8ab53b885566ffa9cc0024
verified by code inspection. Andrey, any other way to verify this one?
No.