diff --git a/core/org.eclipse.cdt.core/ChangeLog b/core/org.eclipse.cdt.core/ChangeLog index aafcb3df7c8..99184bc9066 100644 --- a/core/org.eclipse.cdt.core/ChangeLog +++ b/core/org.eclipse.cdt.core/ChangeLog @@ -1,3 +1,14 @@ +2005-07-14 Vladimir Hirsl + Fix for 103024: NPE in indexerEncoderUtil.nodeInVisitedExternalEheader + Project was not being set when creating indexer in IndexManager#getDefaultIndexer(). + + * index/org/eclipse/cdt/core/index/ICDTIndexer.java + * index/org/eclipse/cdt/internal/core/index/ctagsindexer/CTagsIndexer.java + * index/org/eclipse/cdt/internal/core/index/domsourceindexer/DOMSourceIndexer.java + * index/org/eclipse/cdt/internal/core/index/nullindexer/NullIndexer.java + * index/org/eclipse/cdt/internal/core/search/indexing/IndexManager.java + * src/org/eclipse/cdt/internal/core/InternalCExtension.java + 2005-07-14 Vladimir Hirsl Fix for 95826: indexer message "File not indexed because it was not built" won't go away Info marker was missing INDEXER_MARKER_ORIGINATOR attribute. diff --git a/core/org.eclipse.cdt.core/index/org/eclipse/cdt/core/index/ICDTIndexer.java b/core/org.eclipse.cdt.core/index/org/eclipse/cdt/core/index/ICDTIndexer.java index d908494e60c..fed81b61834 100644 --- a/core/org.eclipse.cdt.core/index/org/eclipse/cdt/core/index/ICDTIndexer.java +++ b/core/org.eclipse.cdt.core/index/org/eclipse/cdt/core/index/ICDTIndexer.java @@ -174,5 +174,11 @@ public interface ICDTIndexer { */ public void saveIndex(IIndex index) throws IOException; - + /** + * Associate a project with indexer + * + * @param project + */ + public void setIndexerProject(IProject project); + } diff --git a/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/index/ctagsindexer/CTagsIndexer.java b/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/index/ctagsindexer/CTagsIndexer.java index 8973c4a7cbc..53b8d2e6f1e 100644 --- a/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/index/ctagsindexer/CTagsIndexer.java +++ b/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/index/ctagsindexer/CTagsIndexer.java @@ -29,6 +29,7 @@ import org.eclipse.cdt.core.index.IIndexStorage; import org.eclipse.cdt.core.index.IndexChangeEvent; import org.eclipse.cdt.core.model.ICModelMarker; import org.eclipse.cdt.internal.core.ConsoleOutputSniffer; +import org.eclipse.cdt.internal.core.InternalCExtension; import org.eclipse.cdt.internal.core.Util; import org.eclipse.cdt.internal.core.index.IIndex; import org.eclipse.cdt.internal.core.index.cindexstorage.CIndexStorage; @@ -556,4 +557,11 @@ public class CTagsIndexer extends AbstractCExtension implements ICDTIndexer { //Nothing yet } + /* (non-Javadoc) + * @see org.eclipse.cdt.core.index.ICDTIndexer#setIndexerProject(org.eclipse.core.resources.IProject) + */ + public void setIndexerProject(IProject project) { + setProject(project); + } + } diff --git a/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/index/domsourceindexer/DOMSourceIndexer.java b/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/index/domsourceindexer/DOMSourceIndexer.java index 63bd7b8a060..d16d82bf85e 100644 --- a/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/index/domsourceindexer/DOMSourceIndexer.java +++ b/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/index/domsourceindexer/DOMSourceIndexer.java @@ -658,5 +658,12 @@ public class DOMSourceIndexer extends AbstractCExtension implements ICDTIndexer // TODO Auto-generated method stub } + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.index.ICDTIndexer#setIndexerProject(org.eclipse.core.resources.IProject) + */ + public void setIndexerProject(IProject project) { + setProject(project); + } } diff --git a/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/index/nullindexer/NullIndexer.java b/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/index/nullindexer/NullIndexer.java index 9e98ed34e71..bbad6a9b379 100644 --- a/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/index/nullindexer/NullIndexer.java +++ b/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/index/nullindexer/NullIndexer.java @@ -122,4 +122,9 @@ public class NullIndexer extends AbstractCExtension implements ICDTIndexer { // TODO Auto-generated method stub } + public void setIndexerProject(IProject project) { + // TODO Auto-generated method stub + + } + } diff --git a/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/search/indexing/IndexManager.java b/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/search/indexing/IndexManager.java index f436208fe78..38f69fbc613 100644 --- a/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/search/indexing/IndexManager.java +++ b/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/search/indexing/IndexManager.java @@ -419,6 +419,7 @@ public class IndexManager extends JobManager{ for (int i = 0; i < element.length; i++) { if (element[i].getName().equalsIgnoreCase("cextension")) { //$NON-NLS-1$ indexer = (ICDTIndexer) element[i].createExecutableExtension("run"); //$NON-NLS-1$ + indexer.setIndexerProject(project); break; } } @@ -433,7 +434,7 @@ public class IndexManager extends JobManager{ ICDTIndexer indexer = null; try{ ICDescriptor cdesc = CCorePlugin.getDefault().getCProjectDescription(project,true); - ICExtensionReference[] cextensions = cdesc.get(CCorePlugin.INDEXER_UNIQ_ID, true); + ICExtensionReference[] cextensions = cdesc.get(CCorePlugin.INDEXER_UNIQ_ID, false); if (cextensions != null && cextensions.length > 0) indexer = (ICDTIndexer) cextensions[0].createExtension(); @@ -492,7 +493,7 @@ public class IndexManager extends JobManager{ monitor.enterWrite(); try{ //Purge the old indexer from the indexer map - Object e = indexerMap.remove(project); + indexerMap.remove(project); } finally { monitor.exitWrite(); final ICDTIndexer indexer = this.getIndexerForProject(project); diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/InternalCExtension.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/InternalCExtension.java index d281e794fd1..e7cd974aad6 100644 --- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/InternalCExtension.java +++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/InternalCExtension.java @@ -19,7 +19,7 @@ public abstract class InternalCExtension extends PlatformObject { private IProject fProject; private ICExtensionReference extensionRef; - void setProject(IProject project) { + protected void setProject(IProject project) { fProject = project; }