if (!isIgnoringEqualInput() && fCurrentViewInput != null && fCurrentViewInput.equals(je))
if (isIgnoringEqualInput() && fCurrentViewInput != null && fCurrentViewInput.equals(je))
	private void computeAndSetInput(final IWorkbenchPart part) {		final int currentCount= ++fComputeCount;		ISelectionProvider provider= part.getSite().getSelectionProvider();		if (provider == null)			return;						final ISelection selection= provider.getSelection();		if (selection == null || selection.isEmpty())			return;				Thread thread= new Thread("Info view input computer") { //$NON-NLS-1$			public void run() {				if (currentCount != fComputeCount)					return;								final IJavaElement je= findSelectedJavaElement(part, selection);				if (!isIgnoringEqualInput() && fCurrentViewInput != null && fCurrentViewInput.equals(je))					return;				// The actual computation						final Object input= computeInput(je);				if (input == null)					return;				Shell shell= getSite().getShell();				if (shell.isDisposed())					return;								Display display= shell.getDisplay();				if (display.isDisposed())					return; 								display.asyncExec(new Runnable() {					/*					 * @see java.lang.Runnable#run()					 */					public void run() {												if (fComputeCount != currentCount || getViewSite().getShell().isDisposed())							return;						fCurrentViewInput= je;						doSetInput(input);											}				});			}		};				thread.setDaemon(true);		thread.setPriority(Thread.MIN_PRIORITY);		thread.start();	}