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 1a7fc07bab9..009456437a2 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 @@ -585,6 +585,7 @@ public abstract class AbstractIndexerTask extends PDOMWriter { return; } + Throwable th= null; try { if (fShowActivity) { System.out.println("Indexer: parsing " + path.toOSString()); //$NON-NLS-1$ @@ -597,15 +598,17 @@ public abstract class AbstractIndexerTask extends PDOMWriter { if (ast != null) { writeToIndex(linkageID, ast, computeHashCode(scanInfo), pm); } + } catch (CoreException e) { + th= e; + } catch (RuntimeException e) { + th= e; + } catch (PDOMNotImplementedError e) { + th= e; + } catch (StackOverflowError e) { + th= e; } - catch (CoreException e) { - swallowError(path, e); - } - catch (RuntimeException e) { - swallowError(path, e); - } - catch (PDOMNotImplementedError e) { - swallowError(path, e); + if (th != null) { + swallowError(path, th); } } 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 111f8097fec..92f1829508d 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 @@ -192,14 +192,19 @@ abstract public class PDOMWriter { if (fShowActivity) { System.out.println("Indexer: adding " + ifl.getURI()); //$NON-NLS-1$ } + Throwable th= null; try { storeFileInIndex(index, ifl, symbolMap, linkageID, configHash, contextIncludes); } catch (RuntimeException e) { - stati.add(CCorePlugin.createStatus( - NLS.bind(Messages.PDOMWriter_errorWhileParsing, ifl.getURI().getPath()), e)); + th= e; } catch (PDOMNotImplementedError e) { + th= e; + } catch (StackOverflowError e) { + th= e; + } + if (th != null) { stati.add(CCorePlugin.createStatus( - NLS.bind(Messages.PDOMWriter_errorWhileParsing, ifl.getURI().getPath()), e)); + NLS.bind(Messages.PDOMWriter_errorWhileParsing, ifl.getURI().getPath()), th)); } if (i