I've quickly chatted with Francois about this, and he agreed that ``annotationsToRemove`` isn't empty (see line [35](https://github.com/scala-ide/scala-ide/pull/562/files#diff-4459a60787b17256af90a23e1e139de7R35)). The contention point is if the ``annotationModel`` can be corrupted by concurrent calls to ``replaceAnnotations`` happening on the reconciler and mark occurrences. Interestingly, in mark occurrences the call to ``replaceAnnotations`` is protected with an ``annotationModelLock``, while the same lock isn't used here.