diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/db/Database.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/db/Database.java index 9e256d33d85..cc777f34ca1 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/db/Database.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/db/Database.java @@ -604,13 +604,11 @@ public class Database { private void flushAndUnlockChunks(final ArrayList dirtyChunks, boolean isComplete) throws CoreException { assert !Thread.holdsLock(fCache); synchronized(fHeaderChunk) { - if (!fHeaderChunk.fDirty) { - if (!(isComplete && fIsMarkedIncomplete)) { - return; - } - } - if (!dirtyChunks.isEmpty()) { + final boolean haveDirtyChunks = !dirtyChunks.isEmpty(); + if (haveDirtyChunks || fHeaderChunk.fDirty) { markFileIncomplete(); + } + if (haveDirtyChunks) { for (Chunk chunk : dirtyChunks) { if (chunk.fDirty) { chunk.flush();