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 acf9cf12ed9..f8c301c6129 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 @@ -183,6 +183,7 @@ public abstract class AbstractIndexerTask extends PDOMWriter { private final boolean fIsFastIndexer; private long fFileSizeLimit= 0; private InternalFileContentProvider fCodeReaderFactory; + private int fSwallowOutOfMemoryError= 5; public AbstractIndexerTask(Object[] filesToUpdate, Object[] filesToRemove, IndexerInputAdapter resolver, boolean fastIndexer) { super(resolver); @@ -765,6 +766,8 @@ public abstract class AbstractIndexerTask extends PDOMWriter { } catch (AssertionError e) { th= e; } catch (OutOfMemoryError e) { + if (--fSwallowOutOfMemoryError < 0) + throw e; th= e; } if (th != null) {