Bug 80912 JUnit tests can't be launched with a 1.3 level jvm anymore
In latest 3.1 integration builds the eclipse textrunner doesn't work if you select a 1.3 level jvm for running the test. It crashes for a dependency from IdentityHashMap (java 1.4). Although eclipse need a 1.4 jre, selecting a 1.3 jre from the run/debug configuration should be possible: this is a show stopper for anyone needs to compile projects using jre 1.3. build 200412140010 java.lang.NoClassDefFoundError: java/util/IdentityHashMap at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:448) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:343) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:195)
org.eclipse.jdt.junit.runtime/src/org/eclipse/jdt/internal/junit/runner/RemoteTestRunner.java
sendMessage(MessageIds.TEST_TREE + treeEntry);
	}
	
	private void notifyTestReran(TestResult result, String testId, String testClass, String testName) {
		TestFailure failure= null;
		if (result.errorCount() > 0) {
			failure= (TestFailure)result.errors().nextElement();
		}
		if (result.failureCount() > 0) {
			failure= (TestFailure)result.failures().nextElement();
		}
		if (failure != null) {
			Throwable t= failure.thrownException();
			
			if ("3".equals(fVersion)) { 
			    if (isComparisonFailure(t)) {
			        
			        Object expected = getField(t, "fExpected"); 
			        Object actual = getField(t, "fActual"); 
			        if (expected != null && actual != null) {
			    	    sendMessage(MessageIds.EXPECTED_START);
			    	    sendMessage((String) expected);
			    	    sendMessage(MessageIds.EXPECTED_END);
			    	    
			    	    sendMessage(MessageIds.ACTUAL_START);
			    	    sendMessage((String) actual);
			    	    sendMessage(MessageIds.ACTUAL_END);
			        }
			    }
			}