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 3974161d378..a2a01509eb6 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 @@ -626,12 +626,17 @@ public abstract class AbstractIndexerTask extends PDOMWriter { } IIndexFileLocation[] ifls= orderedIFLs.toArray(new IIndexFileLocation[orderedIFLs.size()]); - addSymbols(ast, ifls, fIndex, 1, false, configHash, fTodoTaskUpdater, pm); - for (IIndexFileLocation ifl : ifls) { - info= getFileInfo(linkageID, ifl); - assert info != null; - if (info != null) { - info.fIsUpdated= true; + try { + addSymbols(ast, ifls, fIndex, 1, false, configHash, fTodoTaskUpdater, pm); + } + finally { + // mark as updated in any case, to avoid parsing files that caused an exception to be thrown. + for (IIndexFileLocation ifl : ifls) { + info= getFileInfo(linkageID, ifl); + assert info != null; + if (info != null) { + info.fIsUpdated= true; + } } } } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/PDOMWriter.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/PDOMWriter.java index e5c195c6767..399a5096e78 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/PDOMWriter.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/PDOMWriter.java @@ -8,7 +8,6 @@ * Contributors: * Markus Schorn - initial API and implementation *******************************************************************************/ - package org.eclipse.cdt.internal.core.pdom; import java.util.ArrayList; @@ -199,11 +198,9 @@ abstract public class PDOMWriter { } catch (RuntimeException e) { stati.add(CCorePlugin.createStatus( NLS.bind(Messages.PDOMWriter_errorWhileParsing, ifl.getURI().getPath()), e)); - break; } catch (PDOMNotImplementedError e) { stati.add(CCorePlugin.createStatus( NLS.bind(Messages.PDOMWriter_errorWhileParsing, ifl.getURI().getPath()), e)); - break; } if (i