Skip to content

Commit a0332c9

Browse files
jonahgrahamSarikaSinha
authored andcommitted
Bug 526917 - Allow all indexing to complete before query starts
getJavaElementMatches is doing a Java search - via the OpenFromClipboardAction. The SearchEngine tests which have some similar functionality all wait for the index before trying to do the search. See most of the tests under org.eclipse.jdt.core.tests.model.AbstractJavaSearchTests. Code like one of these patterns is common: 1) IndexManager indexManager = JavaModelManager.getIndexManager(); indexManager.indexAll(project.getProject()); waitUntilIndexesReady(); 2) JavaModelManager.getIndexManager().waitForIndex(false, null); 3) refresh(project); waitForAutoBuild(); waitUntilIndexesReady(); By adding the waitForIndex it is hoped the flaky test becomes stable. Change-Id: Ic31ed2e5dc9d5541e49f455c87b04bdf7f1e1f7b Reviewed-on: https://git.eclipse.org/r/c/jdt/eclipse.jdt.debug/+/192113 Tested-by: Sarika Sinha <[email protected]> Tested-by: JDT Bot <[email protected]> Reviewed-by: Sarika Sinha <[email protected]>
1 parent 947df2d commit a0332c9

File tree

1 file changed

+2
-0
lines changed

1 file changed

+2
-0
lines changed

org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/OpenFromClipboardTests.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import org.eclipse.jdt.debug.testplugin.JavaProjectHelper;
3131
import org.eclipse.jdt.debug.tests.TestAgainException;
3232
import org.eclipse.jdt.debug.tests.TestUtil;
33+
import org.eclipse.jdt.internal.core.JavaModelManager;
3334
import org.eclipse.jdt.internal.debug.ui.actions.OpenFromClipboardAction;
3435
import org.eclipse.jdt.launching.IVMInstall;
3536
import org.eclipse.jdt.launching.JavaRuntime;
@@ -140,6 +141,7 @@ private int getMatachingPattern(String s) {
140141
}
141142

142143
private List<?> getJavaElementMatches(final String textData) {
144+
JavaModelManager.getIndexManager().waitForIndex(false, null);
143145
final List<?> matches = new ArrayList<>();
144146
Display.getDefault().syncExec(new Runnable() {
145147
@Override

0 commit comments

Comments
 (0)