Bug 38140 SnippetOpenOnSelectionAction subclasses OpenAction although OpenAction isn't made for subclassing
org.eclipse.jdt.ui/ui/org/eclipse/jdt/ui/actions/OpenAction.java
/* (non-Javadoc)
	 * Method declared on SelectionDispatchAction.
	 */
	public void run(ITextSelection selection) {
		try {
			IJavaElement element= SelectionConverter.codeResolve(fEditor, getShell(), getDialogTitle(), 
				ActionMessages.getString("OpenAction.select_element")); 
			if (element == null) {
				IEditorStatusLine statusLine= (IEditorStatusLine) fEditor.getAdapter(IEditorStatusLine.class);
				if (statusLine != null)
					statusLine.setMessage(true, ActionMessages.getString("OpenAction.error.messageBadSelection"), null); 
				getShell().getDisplay().beep();
				return;
			}
			IJavaElement input= SelectionConverter.getInput(fEditor);
			int type= element.getElementType();
			if (type == IJavaElement.JAVA_PROJECT || type == IJavaElement.PACKAGE_FRAGMENT_ROOT || type == IJavaElement.PACKAGE_FRAGMENT)
				element= input;
			run(new Object[] {element} );
		} catch (JavaModelException e) {
			showError(e);
		}
	}
	
	/* (non-Javadoc)
	 * Method declared on SelectionDispatchAction.
	 */
	public void run(IStructuredSelection selection) {
		if (!checkEnabled(selection))