diff options
-rw-r--r-- | core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/AbstractIndexerTask.java | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/AbstractIndexerTask.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/AbstractIndexerTask.java index 9150a63b971..d9553b3c75b 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/AbstractIndexerTask.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/AbstractIndexerTask.java @@ -1044,6 +1044,14 @@ public abstract class AbstractIndexerTask extends PDOMWriter { } if (th != null) { swallowError(path, th); + // In case of a parsing error the result cache may not have been cleared. + // Clear if under a write lock to reduce interference with index readers. + fIndex.acquireWriteLock(); + try { + fIndex.clearResultCache(); + } finally { + fIndex.releaseWriteLock(); + } } return null; } |