Bug 18039 Opening .class file fails
- build 20020528 - I have loaded a number of classes from the cvs repository at org.eclipse.dev (HEAD stream). Among them are org.eclipse.core.runtime and org.eclipse.core.boot - Search->File - fill in "findResource(" in the 'Containing Text' field - leave everything else as default (searching the workspace and for file name patterns '*') - do the search - I get 2 hits: DelegatingURLClassLoader.class (org.eclipse.core.boot/bin/org/eclipse/core/internal/boot) and DelegatingURLClassLoader.java (org.eclipse.core.boot/src/org/eclipse/core/internal/boot) - 10 matches - try to open the first file in the search result (which doesn't really make sense since it is a .class file) - you get the error: Could not open the editor Reason: bin/org/eclipse/core/internal/boot does not exist - But it does exist and there is a DelegatingURLClassLoader.class there. - Now try to redo the search - Search->File - in the 'Containing Text' field you find "findResource(_x0008__x0001_u_x000C__x0001_6_x0001_7" (i.e added garbage to the end of my search string).
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javaeditor/ClassFileEditor.java
ExceptionHandler.handle(e, fParent.getShell(), title, message);
		}
	}
	/**
	 * Returns the package fragment root corresponding to the class file.
	 */
	private static IPackageFragmentRoot getPackageFragmentRoot(IClassFile file) {
		IJavaElement element= file.getParent();
		while (element != null && element.getElementType() != IJavaElement.PACKAGE_FRAGMENT_ROOT)
			element= element.getParent();
		return (IPackageFragmentRoot) element;		
	}
	/**
	 * Checks if the class file input has no source attached. If so, a source attachment form is shown.
	 */
	private void verifyInput(IEditorInput input) throws CoreException {
		if (fParent == null || input == null)
			return;
		IClassFileEditorInput classFileEditorInput= (IClassFileEditorInput) input;
		IClassFile file= classFileEditorInput.getClassFile();
		
		
		if (file.getSourceRange() == null) {
			
			if (fSourceAttachmentForm != null)
				fSourceAttachmentForm.dispose();
			SourceAttachmentForm form= new SourceAttachmentForm(file);
			fSourceAttachmentForm= form.createControl(fParent);
			fStackLayout.topControl= fSourceAttachmentForm;
			fParent.layout();