Released workaround for bug 188587: [FastView] Search view stepping in fast view mode broken
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/search/JavaSearchEditorOpener.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/search/JavaSearchEditorOpener.java
index 8771b60..1b740ea 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/search/JavaSearchEditorOpener.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/search/JavaSearchEditorOpener.java
@@ -22,6 +22,7 @@
 import org.eclipse.ui.IReusableEditor;
 import org.eclipse.ui.IViewReference;
 import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchPartReference;
 import org.eclipse.ui.PartInitException;
 import org.eclipse.ui.part.FileEditorInput;
 
@@ -117,8 +118,7 @@
 			if (canBeReused) {
 				boolean showsSameInputType= reusedEditorRef.getId().equals(editorId);
 				if (!showsSameInputType) {
-					IViewReference searchViewRef= page.findViewReference(NewSearchUI.SEARCH_VIEW_ID);
-					if (searchViewRef == null || !searchViewRef.isFastView())
+					if (isOkToClose(page)) // workaround for https://bugs.eclipse.org/bugs/show_bug.cgi?id=188587
 						page.closeEditors(new IEditorReference[] { reusedEditorRef }, false);
 					fReusedEditor= null;
 				} else {
@@ -158,4 +158,11 @@
 		return null;
 	}
 
+	private boolean isOkToClose(IWorkbenchPage page) {
+		IWorkbenchPartReference searchViewRef= page.getActivePartReference();
+		return searchViewRef == null ||
+			!NewSearchUI.SEARCH_VIEW_ID.equals(searchViewRef.getId()) ||
+			!((IViewReference) searchViewRef).isFastView();
+	}
+
 }