Bug 11814 OpenExternalJavadoc action should not call findElement on JAR
This causes an exception: Java Model Exception: Java Model Status [Invalid path: C:/Java/IBM1.3/jre/lib/rt.jar.] at org.eclipse.jdt.internal.core.JavaProject.findElement(JavaProject.java:435) at org.eclipse.jdt.internal.ui.actions.OpenExternalJavadocAction.run(OpenExternalJavadocAction.java:102) at org.eclipse.ui.texteditor.RetargetTextEditorAction.run(RetargetTextEditorAction.java:103) at org.eclipse.jface.action.Action.runWithEvent(Action.java:473) at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:407) at org.eclipse.jface.action.ActionContributionItem.handleWidgetEvent(ActionContributionItem.java(Compiled Code)) at org.eclipse.jface.action.ActionContributionItem$ActionListener.handleEvent(ActionContributionItem.java(Compiled Code)) at org.eclipse.jface.action.ActionContributionItem$ActionListener.handleEvent(ActionContributionItem.java(Compiled Code)) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java(Compiled Code)) at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java(Compiled Code)) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java(Compiled Code)) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java(Compiled Code)) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java(Compiled Code)) at org.eclipse.ui.internal.Workbench.run(Workbench.java:698) at org.eclipse.core.internal.boot.InternalBootLoader.run(InternalBootLoader.java:777) at org.eclipse.core.boot.BootLoader.run(BootLoader.java:319) at java.lang.reflect.Method.invoke(Native Method) at org.eclipse.core.launcher.Main.basicRun(Main.java:196) at org.eclipse.core.launcher.Main.run(Main.java:555) at org.eclipse.core.launcher.UIMain.main(UIMain.java:52) 4 org.eclipse.jdt.core 979 Invalid path: C:/Java/IBM1.3/jre/lib/rt.jar.
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/actions/OpenExternalJavadocAction.java
public void run() {
		Object selected= getSelectedElement();
		if (!(selected instanceof IJavaElement)) {
			return;
		}
		
		IJavaElement jelem= (IJavaElement) selected;
		Shell shell= JavaPlugin.getActiveWorkbenchShell();
		try {
			String labelName= JavaElementLabels.getElementLabel(jelem, JavaElementLabels.M_PARAMETER_TYPES);
			
			IPath annotatedPath= JavaDocLocations.getAnnotatedPath(jelem);
			if (annotatedPath == null) {
				String message= "No Javadoc available for element ''{0}''";
				showError(shell, MessageFormat.format(message, new String[] { labelName }));
				return;
			}
			URL baseURL= JavaDocLocations.getJavadocLocation(annotatedPath);
			if (baseURL == null) {
				IJavaElement annotatedElement= jelem.getJavaProject().findElement(annotatedPath);
				
				if (annotatedElement.getElementType() == IJavaElement.JAVA_PROJECT) {
					String message= "The documentation location for ''{0}'' has not been configured. For elements from source specify the Javadoc location URL on the property page of the parent project (''{1}'').";	
					showError(shell, MessageFormat.format(message, new String[] { labelName, annotatedElement.getElementName() }));
					return;
				} else {
					String message= "The documentation location for ''{0}'' has not been configured. For elements from libraries specify the Javadoc location URL on the property page of the parent JAR (''{1}'').";	
					showError(shell, MessageFormat.format(message, new String[] { labelName, annotatedElement.getElementName() }));
					return;
				}