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
private boolean hasTestId() {
		if (fVersion == null) 
			return true;
		return fVersion.equals("v2"); 
	}
	private void notifyTestReran(final String testId, final String className, final String testName, final int statusCode, final String trace) {
		for (int i= 0; i < fListeners.length; i++) {
			final ITestRunListener listener= fListeners[i];
			Platform.run(new ListenerSafeRunnable() { 
				public void run() {
				    if (listener instanceof ITestRunListener3 ) 
				        ((ITestRunListener3)listener).testReran(testId, className, testName, statusCode, trace, fExpectedResult, fActualResult);
				    else
						listener.testReran(testId, className, testName, statusCode, trace);
				}
			});
		}
	}
	private void notifyTestTreeEntry(final String treeEntry) {
		for (int i= 0; i < fListeners.length; i++) {
			if (fListeners[i] instanceof ITestRunListener2) {
				ITestRunListener2 listener= (ITestRunListener2)fListeners[i];
				if (!hasTestId()) 
					listener.testTreeEntry(fakeTestId(treeEntry));
				else
					listener.testTreeEntry(treeEntry);
			}
		}
	}