From cff21a926be4ff718f3351b5a124d37d7b6482e4 Mon Sep 17 00:00:00 2001 From: Doug Schaefer Date: Thu, 11 May 2006 13:30:11 +0000 Subject: [PATCH] Fox for 138886 - If indexerId is for an unknown indexer, default to the Null indexer instead of causing an NPE. --- .../cdt/internal/core/pdom/PDOMManager.java | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/PDOMManager.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/PDOMManager.java index c8ed2d8d3e5..e7f69ca0055 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/PDOMManager.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/PDOMManager.java @@ -22,6 +22,7 @@ import org.eclipse.cdt.core.model.ICElement; import org.eclipse.cdt.core.model.ICElementDelta; import org.eclipse.cdt.core.model.ICProject; import org.eclipse.cdt.core.model.IElementChangedListener; +import org.eclipse.cdt.internal.core.pdom.indexer.nulli.PDOMNullIndexer; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.ProjectScope; import org.eclipse.core.runtime.CoreException; @@ -219,14 +220,16 @@ public class PDOMManager implements IPDOMManager, IElementChangedListener { // Look up in extension point IExtension indexerExt = Platform.getExtensionRegistry() .getExtension(CCorePlugin.INDEXER_UNIQ_ID, indexerId); - IConfigurationElement[] elements = indexerExt.getConfigurationElements(); - for (int i = 0; i < elements.length; ++i) { - IConfigurationElement element = elements[i]; - if ("run".equals(element.getName())) //$NON-NLS-1$ - return (IPDOMIndexer)element.createExecutableExtension("class"); //$NON-NLS-1$ + if (indexerExt != null) { + IConfigurationElement[] elements = indexerExt.getConfigurationElements(); + for (int i = 0; i < elements.length; ++i) { + IConfigurationElement element = elements[i]; + if ("run".equals(element.getName())) //$NON-NLS-1$ + return (IPDOMIndexer)element.createExecutableExtension("class"); //$NON-NLS-1$ + } } - throw new CoreException(new Status(IStatus.ERROR, CCorePlugin.PLUGIN_ID, - 0, CCorePlugin.getResourceString("indexer.notFound"), null)); //$NON-NLS-1$ + // Unknown index, default to the null one + return new PDOMNullIndexer(); } public ISchedulingRule getIndexerSchedulingRule() {