Released workaround for bug 188587: [FastView] Search view stepping in fast view mode broken
diff --git a/org.eclipse.search/search/org/eclipse/search/internal/ui/text/EditorOpener.java b/org.eclipse.search/search/org/eclipse/search/internal/ui/text/EditorOpener.java
index 4983eb8..540f279 100644
--- a/org.eclipse.search/search/org/eclipse/search/internal/ui/text/EditorOpener.java
+++ b/org.eclipse.search/search/org/eclipse/search/internal/ui/text/EditorOpener.java
@@ -20,6 +20,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.ide.IDE;
 import org.eclipse.ui.part.FileEditorInput;
@@ -73,8 +74,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 {
@@ -100,5 +100,11 @@
 		return editor;
 	}
 
+	private boolean isOkToClose(IWorkbenchPage page) {
+		IWorkbenchPartReference searchViewRef= page.getActivePartReference();
+		return searchViewRef == null ||
+			!NewSearchUI.SEARCH_VIEW_ID.equals(searchViewRef.getId()) ||
+			!((IViewReference) searchViewRef).isFastView();
+	}
 	
 }