Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Xenos2017-04-25 01:29:30 +0000
committerStefan Xenos2017-04-25 16:53:01 +0000
commite5ecb59d7f7e552009dbf0a5804f0f42a88231ca (patch)
treeb80cdc6cb14c6af1dd1c41a3102ab05944c87e90
parent73805afd59910a4c2e54adf141d62100ce5ba84e (diff)
downloadeclipse.jdt.core-e5ecb59d7f7e552009dbf0a5804f0f42a88231ca.tar.gz
eclipse.jdt.core-e5ecb59d7f7e552009dbf0a5804f0f42a88231ca.tar.xz
eclipse.jdt.core-e5ecb59d7f7e552009dbf0a5804f0f42a88231ca.zip
Bug 515504 - rebuildIndexshould erase the new index db if it is disabledI20170426-2000
-rw-r--r--org.eclipse.jdt.core/model/org/eclipse/jdt/core/JavaCore.java3
-rw-r--r--org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/nd/indexer/Indexer.java14
2 files changed, 12 insertions, 5 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 ffb80ea513..ad45148cc1 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
@@ -5517,7 +5517,8 @@ public final class JavaCore extends Plugin {
}
/**
- * Deletes and rebuilds the java index.
+ * Deletes the index, then rebuilds any portions of the index that are
+ * currently needed by the workspace.
*
* @param monitor a progress monitor, or <code>null</code> if progress
* reporting and cancellation are not desired
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 b149447f92..5922a94ffe 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
@@ -1046,18 +1046,24 @@ public final class Indexer {
}
public void rebuildIndex(IProgressMonitor monitor) throws CoreException {
- if (!JavaIndex.isEnabled()) {
- return;
- }
SubMonitor subMonitor = SubMonitor.convert(monitor, 100);
+ this.rescanJob.cancel();
+ try {
+ this.rescanJob.join(0, subMonitor.split(1));
+ } catch (InterruptedException e) {
+ // Nothing to do.
+ }
this.nd.acquireWriteLock(subMonitor.split(1));
try {
this.nd.clear(subMonitor.split(2));
} finally {
this.nd.releaseWriteLock();
}
- rescan(subMonitor.split(98));
+ if (!JavaIndex.isEnabled()) {
+ return;
+ }
+ rescan(subMonitor.split(97));
}
public void requestRebuildIndex() {

Back to the top