Bug 77771 RemoteTestRunnerClient doing work after junit shutdown [JUnit]
I am unsure of the exact test case but I would assume I shut down my workspace while running junit tests. java.lang.ClassNotFoundException: The class "org.eclipse.jdt.internal.junit.ui.RemoteTestRunnerClient$8" cannot be loaded because the system is shutting down and the plug- in "org.eclipse.jdt.junit" has already been stopped. at org.eclipse.core.runtime.adaptor.EclipseClassLoader.shouldActivateFor (EclipseClassLoader.java:147) at org.eclipse.core.runtime.adaptor.EclipseClassLoader.findLocalClass (EclipseClassLoader.java:62) at org.eclipse.osgi.framework.internal.core.BundleLoader.findLocalClass (BundleLoader.java:371) at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass (BundleLoader.java:402) at org.eclipse.osgi.framework.adaptor.core.AbstractClassLoader.loadClass (AbstractClassLoader.java:93) at java.lang.ClassLoader.loadClass(ClassLoader.java:235) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302) at org.eclipse.jdt.internal.junit.ui.RemoteTestRunnerClient.notifyTestRunTerminate d(RemoteTestRunnerClient.java:510) at org.eclipse.jdt.internal.junit.ui.RemoteTestRunnerClient.access$31 (RemoteTestRunnerClient.java:507) at org.eclipse.jdt.internal.junit.ui.RemoteTestRunnerClient$ServerConnection.run (RemoteTestRunnerClient.java:253)
org.eclipse.jdt.junit/src/org/eclipse/jdt/internal/junit/ui/RemoteTestRunnerClient.java
final ITestRunListener listener= fListeners[i];
			Platform.run(new ListenerSafeRunnable() { 
				public void run() {
				    if (listener instanceof ITestRunListener3 )
				        ((ITestRunListener3)listener).testFailed(fFailureKind, fFailedTestId, 
				                fFailedTest, fFailedTrace, fExpectedResult, fActualResult);
				    else
				        listener.testFailed(fFailureKind, fFailedTestId, fFailedTest, fFailedTrace);
				}
			});
		}
	}
	
	private void notifyTestRunTerminated() {
		for (int i= 0; i < fListeners.length; i++) {
			final ITestRunListener listener= fListeners[i];
			Platform.run(new ListenerSafeRunnable() { 
				public void run() {
					listener.testRunTerminated();
				}
			});
		}
	}
	public void rerunTest(String testId, String className, String testName) {
		if (isRunning()) {
			fWriter.println(MessageIds.TEST_RERUN+testId+" "+className+" "+testName); 
			fWriter.flush();
		}
	}
}