diff options
author | Andrey Loskutov | 2019-05-01 19:05:51 +0000 |
---|---|---|
committer | Andrey Loskutov | 2019-05-04 08:20:41 +0000 |
commit | 5faa7c5f1d6ced2be62840ecfb39438169bffa16 (patch) | |
tree | 80e7688049e6929d8acf8a5e8da45aad2ff4ec0c | |
parent | c24ff998cff3b45210a73fb4067fd17d8ee731dc (diff) | |
download | eclipse.jdt.core-5faa7c5f1d6ced2be62840ecfb39438169bffa16.tar.gz eclipse.jdt.core-5faa7c5f1d6ced2be62840ecfb39438169bffa16.tar.xz eclipse.jdt.core-5faa7c5f1d6ced2be62840ecfb39438169bffa16.zip |
Bug 544898 - [newindex] Disable new index in JDT coreI20190508-1800I20190508-0450I20190508-0150I20190507-1800I20190507-0155I20190506-1800I20190505-1800I20190504-1800
Change-Id: Ic7a72f57887109eb8e109aae464f80980547d119
Signed-off-by: Andrey Loskutov <loskutov@gmx.de>
6 files changed, 61 insertions, 56 deletions
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/JavaCore.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/JavaCore.java index 6cc7ebc08e..eccd28957d 100644 --- a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/JavaCore.java +++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/JavaCore.java @@ -5757,6 +5757,8 @@ public final class JavaCore extends Plugin { IndexManager manager = JavaModelManager.getIndexManager(); manager.deleteIndexFiles(subMonitor.split(1)); manager.reset(); + // New index is disabled, see bug 544898. + // However we keep this call here to cleanup the possibly existing database Indexer.getInstance().rebuildIndex(subMonitor.split(95)); updateLegacyIndex(subMonitor.split(4)); } @@ -6351,6 +6353,7 @@ public final class JavaCore extends Plugin { super.start(context); JavaModelManager.registerDebugOptionsListener(context); JavaModelManager.getJavaModelManager().startup(); - Indexer.getInstance().rescanAll(); + // New index is disabled, see bug 544898 + // Indexer.getInstance().rescanAll(); } } diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/JavaCorePreferenceInitializer.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/JavaCorePreferenceInitializer.java index 8dc48f566f..ecbed84648 100644 --- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/JavaCorePreferenceInitializer.java +++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/JavaCorePreferenceInitializer.java @@ -15,14 +15,17 @@ *******************************************************************************/ package org.eclipse.jdt.internal.core; -import java.util.*; +import java.util.HashSet; +import java.util.Iterator; +import java.util.Map; -import org.eclipse.core.runtime.preferences.*; +import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer; +import org.eclipse.core.runtime.preferences.DefaultScope; +import org.eclipse.core.runtime.preferences.IEclipsePreferences; import org.eclipse.jdt.core.JavaCore; import org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants; import org.eclipse.jdt.internal.compiler.impl.CompilerOptions; import org.eclipse.jdt.internal.core.nd.db.ChunkCache; -import org.eclipse.jdt.internal.core.nd.java.JavaIndex; /** * JavaCore eclipse preferences initializer. @@ -113,8 +116,6 @@ public class JavaCorePreferenceInitializer extends AbstractPreferenceInitializer defaultOptionsMap.put(ChunkCache.CHUNK_CACHE_SIZE_MB, Double.toString(ChunkCache.CHUNK_CACHE_SIZE_MB_DEFAULT)); defaultOptionsMap.put(ChunkCache.CHUNK_CACHE_SIZE_PERCENT, Double.toString(ChunkCache.CHUNK_CACHE_SIZE_PERCENT_DEFAULT)); - defaultOptionsMap.put(JavaIndex.ENABLE_NEW_JAVA_INDEX, - Boolean.toString(JavaIndex.ENABLE_NEW_JAVA_INDEX_DEFAULT)); // Time out for parameter names defaultOptionsMap.put(JavaCore.TIMEOUT_FOR_PARAMETER_NAME_FROM_ATTACHED_JAVADOC, "50"); //$NON-NLS-1$ diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/JavaModelManager.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/JavaModelManager.java index 604b4e0b07..704a2437a6 100644 --- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/JavaModelManager.java +++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/JavaModelManager.java @@ -5414,8 +5414,9 @@ public class JavaModelManager implements ISaveParticipant, IContentTypeChangeLis | IResourceChangeEvent.PRE_DELETE | IResourceChangeEvent.PRE_CLOSE | IResourceChangeEvent.PRE_REFRESH); - - Indexer.getInstance().addListener(this.deltaState); + + // New index is disabled, see bug 544898 + // Indexer.getInstance().addListener(this.deltaState); // listen to resource changes affecting external annotations ExternalAnnotationTracker.start(workspace); diff --git a/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/nd/indexer/Indexer.java b/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/nd/indexer/Indexer.java index 767e9808d4..adc43da93c 100644 --- a/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/nd/indexer/Indexer.java +++ b/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/nd/indexer/Indexer.java @@ -50,10 +50,6 @@ import org.eclipse.core.runtime.Platform; import org.eclipse.core.runtime.SubMonitor; import org.eclipse.core.runtime.jobs.Job; import org.eclipse.core.runtime.jobs.JobGroup; -import org.eclipse.core.runtime.preferences.IEclipsePreferences; -import org.eclipse.core.runtime.preferences.IEclipsePreferences.IPreferenceChangeListener; -import org.eclipse.core.runtime.preferences.IEclipsePreferences.PreferenceChangeEvent; -import org.eclipse.core.runtime.preferences.InstanceScope; import org.eclipse.jdt.core.IJavaElement; import org.eclipse.jdt.core.IJavaElementDelta; import org.eclipse.jdt.core.IJavaModelStatusConstants; @@ -73,7 +69,6 @@ import org.eclipse.jdt.internal.core.JavaModel; import org.eclipse.jdt.internal.core.JavaModelManager; import org.eclipse.jdt.internal.core.nd.IReader; import org.eclipse.jdt.internal.core.nd.Nd; -import org.eclipse.jdt.internal.core.nd.db.ChunkCache; import org.eclipse.jdt.internal.core.nd.db.Database; import org.eclipse.jdt.internal.core.nd.db.IndexException; import org.eclipse.jdt.internal.core.nd.java.FileFingerprint; @@ -102,18 +97,21 @@ public final class Indexer { public static boolean DEBUG_INSERTIONS; public static boolean DEBUG_SELFTEST; public static int DEBUG_LOG_SIZE_MB; - private static IPreferenceChangeListener listener = new IPreferenceChangeListener() { - @Override - public void preferenceChange(PreferenceChangeEvent event) { - if (JavaIndex.ENABLE_NEW_JAVA_INDEX.equals(event.getKey())) { - if (JavaIndex.isEnabled()) { - getInstance().rescanAll(); - } else { - ChunkCache.getSharedInstance().clear(); - } - } - } - }; + + // New index is disabled, see bug 544898 +// private static final String ENABLE_NEW_JAVA_INDEX = "enableNewJavaIndex"; //$NON-NLS-1$ +// private static IPreferenceChangeListener listener = new IPreferenceChangeListener() { +// @Override +// public void preferenceChange(PreferenceChangeEvent event) { +// if (ENABLE_NEW_JAVA_INDEX.equals(event.getKey())) { +// if (JavaIndex.isEnabled()) { +// getInstance().rescanAll(); +// } else { +// ChunkCache.getSharedInstance().clear(); +// } +// } +// } +// }; // This is an arbitrary constant that is larger than the maximum number of ticks // reported by SubMonitor and small enough that it won't overflow a long when multiplied by a large @@ -166,8 +164,8 @@ public final class Indexer { synchronized (mutex) { if (indexer == null) { indexer = new Indexer(JavaIndex.getGlobalNd(), ResourcesPlugin.getWorkspace().getRoot()); - IEclipsePreferences preferences = InstanceScope.INSTANCE.getNode(JavaCore.PLUGIN_ID); - preferences.addPreferenceChangeListener(listener); +// IEclipsePreferences preferences = InstanceScope.INSTANCE.getNode(JavaCore.PLUGIN_ID); +// preferences.addPreferenceChangeListener(listener); } return indexer; } diff --git a/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/nd/java/JavaIndex.java b/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/nd/java/JavaIndex.java index 56fcec938c..afef5b8917 100644 --- a/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/nd/java/JavaIndex.java +++ b/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/nd/java/JavaIndex.java @@ -22,8 +22,6 @@ import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.Path; -import org.eclipse.core.runtime.Platform; -import org.eclipse.core.runtime.preferences.IPreferencesService; import org.eclipse.jdt.core.IJavaElement; import org.eclipse.jdt.core.JavaCore; import org.eclipse.jdt.internal.core.JavaModelManager; @@ -45,9 +43,6 @@ public class JavaIndex { static final int MAX_SUPPORTED_VERSION = Nd.version(1, 49); static final int MIN_SUPPORTED_VERSION = Nd.version(1, 49); - public static final String ENABLE_NEW_JAVA_INDEX = "enableNewJavaIndex"; //$NON-NLS-1$ - public static final boolean ENABLE_NEW_JAVA_INDEX_DEFAULT = false; - // Fields for the search header public static final FieldSearchIndex<NdResourceFile> FILES; public static final FieldSearchIndex<NdTypeId> SIMPLE_INDEX; @@ -223,13 +218,11 @@ public class JavaIndex { return next.getPath(); } + /** + * @return always return {@code false} see bug 544898. New index is disabled now. + */ public static boolean isEnabled() { - IPreferencesService preferenceService = Platform.getPreferencesService(); - if (preferenceService == null) { - return true; - } - return preferenceService.getBoolean(JavaCore.PLUGIN_ID, ENABLE_NEW_JAVA_INDEX, ENABLE_NEW_JAVA_INDEX_DEFAULT, - null); + return false; } public static Nd createNd(File databaseFile, ChunkCache chunkCache) { diff --git a/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/search/indexing/IndexManager.java b/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/search/indexing/IndexManager.java index 92e3aad338..8d61692cbd 100644 --- a/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/search/indexing/IndexManager.java +++ b/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/search/indexing/IndexManager.java @@ -56,8 +56,6 @@ import org.eclipse.jdt.internal.core.index.DiskIndex; import org.eclipse.jdt.internal.core.index.FileIndexLocation; import org.eclipse.jdt.internal.core.index.Index; import org.eclipse.jdt.internal.core.index.IndexLocation; -import org.eclipse.jdt.internal.core.nd.indexer.Indexer; -import org.eclipse.jdt.internal.core.nd.java.JavaIndex; import org.eclipse.jdt.internal.core.search.BasicSearchEngine; import org.eclipse.jdt.internal.core.search.PatternSearchJob; import org.eclipse.jdt.internal.core.search.processing.IJob; @@ -75,9 +73,9 @@ public class IndexManager extends JobManager implements IIndexConstants { private SimpleLookupTable indexes = new SimpleLookupTable(); /** - * The new indexer + * The new indexer is disabled, see bug 544898 */ - private Indexer indexer = Indexer.getInstance(); +// private Indexer indexer = Indexer.getInstance(); /* need to save ? */ private boolean needToSave = false; @@ -255,7 +253,8 @@ private void deleteIndexFiles(SimpleSet pathsToKeep, IProgressMonitor monitor) { * Creates an empty index at the given location, for the given container path, if none exist. */ public synchronized void ensureIndexExists(IndexLocation indexLocation, IPath containerPath) { - this.indexer.makeWorkspacePathDirty(containerPath); + // New index is disabled, see bug 544898 + // this.indexer.makeWorkspacePathDirty(containerPath); SimpleLookupTable states = getIndexStates(); Object state = states.get(indexLocation); if (state == null) { @@ -567,7 +566,8 @@ public void indexResolvedDocument(SearchDocument searchDocument, SearchParticipa * Note: the actual operation is performed in background */ public void indexAll(IProject project) { - this.indexer.makeDirty(project); + // New index is disabled, see bug 544898 + // this.indexer.makeDirty(project); if (JavaCore.getPlugin() == null) return; try { @@ -617,7 +617,8 @@ private boolean isJrt(String fileName) { * Note: the actual operation is performed in background */ public void indexLibrary(IPath path, IProject requestingProject, URL indexURL, final boolean updateIndex) { - this.indexer.makeWorkspacePathDirty(path); + // New index is disabled, see bug 544898 + // this.indexer.makeWorkspacePathDirty(path); // requestingProject is no longer used to cancel jobs but leave it here just in case IndexLocation indexFile = null; boolean forceIndexUpdate = false; @@ -673,7 +674,8 @@ synchronized boolean addIndex(IPath containerPath, IndexLocation indexFile) { */ public void indexSourceFolder(JavaProject javaProject, IPath sourceFolder, char[][] inclusionPatterns, char[][] exclusionPatterns) { IProject project = javaProject.getProject(); - this.indexer.makeWorkspacePathDirty(sourceFolder); + // New index is disabled, see bug 544898 + // this.indexer.makeWorkspacePathDirty(sourceFolder); if (this.jobEnd > this.jobStart) { // skip it if a job to index the project is already in the queue IndexRequest request = new IndexAllProject(project, this); @@ -736,7 +738,8 @@ private void rebuildIndex(IndexLocation indexLocation, IPath containerPath) { rebuildIndex(indexLocation, containerPath, false); } private void rebuildIndex(IndexLocation indexLocation, IPath containerPath, final boolean updateIndex) { - this.indexer.makeWorkspacePathDirty(containerPath); + // New index is disabled, see bug 544898 + // this.indexer.makeWorkspacePathDirty(containerPath); Object target = JavaModel.getTarget(containerPath, true); if (target == null) return; @@ -795,7 +798,8 @@ public synchronized Index recreateIndex(IPath containerPath) { * Note: the actual operation is performed in background */ public void remove(String containerRelativePath, IPath indexedContainer){ - this.indexer.makeWorkspacePathDirty(indexedContainer); + // New index is disabled, see bug 544898 + // this.indexer.makeWorkspacePathDirty(indexedContainer); request(new RemoveFromIndex(containerRelativePath, indexedContainer, this)); } /** @@ -805,7 +809,8 @@ public void remove(String containerRelativePath, IPath indexedContainer){ public synchronized void removeIndex(IPath containerPath) { if (VERBOSE || DEBUG) Util.verbose("removing index " + containerPath); //$NON-NLS-1$ - this.indexer.makeWorkspacePathDirty(containerPath); + // New index is disabled, see bug 544898 + // this.indexer.makeWorkspacePathDirty(containerPath); IndexLocation indexLocation = computeIndexLocation(containerPath); Index index = getIndex(indexLocation); File indexFile = null; @@ -835,7 +840,8 @@ public synchronized void removeIndex(IPath containerPath) { public synchronized void removeIndexPath(IPath path) { if (VERBOSE || DEBUG) Util.verbose("removing index path " + path); //$NON-NLS-1$ - this.indexer.makeWorkspacePathDirty(path); + // New index is disabled, see bug 544898 + // this.indexer.makeWorkspacePathDirty(path); Object[] keyTable = this.indexes.keyTable; Object[] valueTable = this.indexes.valueTable; IndexLocation[] locations = null; @@ -882,7 +888,8 @@ public synchronized void removeIndexPath(IPath path) { * Removes all indexes whose paths start with (or are equal to) the given path. */ public synchronized void removeIndexFamily(IPath path) { - this.indexer.makeWorkspacePathDirty(path); + // New index is disabled, see bug 544898 + // this.indexer.makeWorkspacePathDirty(path); // only finds cached index files... shutdown removes all non-cached index files ArrayList toRemove = null; Object[] containerPaths = this.indexLocations.keyTable; @@ -903,7 +910,8 @@ public synchronized void removeIndexFamily(IPath path) { * Remove the content of the given source folder from the index. */ public void removeSourceFolderFromIndex(JavaProject javaProject, IPath sourceFolder, char[][] inclusionPatterns, char[][] exclusionPatterns) { - this.indexer.makeWorkspacePathDirty(sourceFolder); + // New index is disabled, see bug 544898 + // this.indexer.makeWorkspacePathDirty(sourceFolder); IProject project = javaProject.getProject(); if (this.jobEnd > this.jobStart) { // skip it if a job to index the project is already in the queue @@ -1046,10 +1054,11 @@ public void saveIndexes() { this.needToSave = !allSaved; } public void scheduleDocumentIndexing(final SearchDocument searchDocument, IPath container, final IndexLocation indexLocation, final SearchParticipant searchParticipant) { - IPath targetLocation = JavaIndex.getLocationForPath(new Path(searchDocument.getPath())); - if (targetLocation != null) { - this.indexer.makeDirty(targetLocation); - } + // New index is disabled, see bug 544898 +// IPath targetLocation = JavaIndex.getLocationForPath(new Path(searchDocument.getPath())); +// if (targetLocation != null) { +// this.indexer.makeDirty(targetLocation); +// } request(new IndexRequest(container, this) { @Override public boolean execute(IProgressMonitor progressMonitor) { |