postAsyncRunnable(new Runnable() {
postSyncRunnable(new Runnable() {
	public void testRunEnded(long elapsedTime){		fExecutedTests--;		String[] keys= {elapsedTimeAsString(elapsedTime), String.valueOf(fErrors), String.valueOf(fFailures)};		String msg= JUnitMessages.getFormattedString("TestRunnerViewPart.message.finish", keys); //$NON-NLS-1$		if (hasErrorsOrFailures())			postError(msg);		else			postInfo(msg);		postAsyncRunnable(new Runnable() {							public void run() {				if(isDisposed()) 					return;					if (fFirstFailure != null && fAutoScroll) {					fActiveRunView.setSelectedTest(fFirstFailure.getTestId());					handleTestSelected(fFirstFailure.getTestId());				}				updateViewIcon();				if (fDirtyListener == null) {					fDirtyListener= new DirtyListener();					JavaCore.addElementChangedListener(fDirtyListener);				}			}		});		}