Bug 62503 Classloader problem with older versions of JUnit [JUnit]
I have a project with a version 3.6 junit.jar on the classpath. In 3.0M8 when I run a test with an assertEquals() that fails, I get this error: java.lang.NoClassDefFoundError: junit/framework/ComparisonFailure at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.addFailure(RemoteTestRunner.java:533) at junit.framework.TestResult.addFailure(TestResult.java:46) at junit.framework.TestResult.runProtected(TestResult.java:127) at junit.framework.TestResult.run(TestResult.java:109) at junit.framework.TestCase.run(TestCase.java:131) at junit.framework.TestSuite.runTest(TestSuite.java:173) at junit.framework.TestSuite.run(TestSuite.java:168) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:410) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:294) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:182) Exception in thread "main" This used to work with Eclipse 2.1 (which also had JUnit 3.8.1 built in), and it disappears when I upgrade my copy of junit.jar to 3.8.1 to match the Eclipse one.
org.eclipse.jdt.junit.runtime/src/org/eclipse/jdt/internal/junit/runner/RemoteTestRunner.java
sendMessage(MessageIds.RTRACE_START);
			sendMessage(trace);
			sendMessage(MessageIds.RTRACE_END);
			fWriter.flush();
		}
		String status= "OK"; 
		if (result.errorCount() > 0)
			status= "ERROR"; 
		else if (result.failureCount() > 0)
			status= "FAILURE"; 
		if (fPort != -1) {
			sendMessage(MessageIds.TEST_RERAN + testId+ " "+testClass+" "+testName+" "+status); 
			fWriter.flush();
		}
	}
	
	private String getField(Object object, String fieldName) {
	    Class clazz= object.getClass();
	    try {
	        Field field= clazz.getDeclaredField(fieldName);
	        field.setAccessible(true);
	        Object result= field.get(object);
	        return result.toString();
	    } catch (Exception e) {
	        
	    }
	    return null;
	}
}