Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 407010

Summary: junit.framework.ComparisonFailure: Unexpected failure
Product: [Eclipse Project] JDT Reporter: Ludmila Shikhvarg <ludmila.shikhvarg>
Component: CoreAssignee: Stephan Herrmann <stephan.herrmann>
Status: VERIFIED INVALID QA Contact:
Severity: major    
Priority: P3 CC: jarthana, stephan.herrmann
Version: 4.2   
Target Milestone: 4.3 RC1   
Hardware: All   
OS: All   
Whiteboard:

Description Ludmila Shikhvarg CLA 2013-05-01 13:51:19 EDT
Version: 4.2.0  Build id: I20120608-1400

Tests (~ 125 tests) started to failed with JDK8 b87 in org.eclipse.jdt.core.tests.compiler.regression package like for <testcase classname="org.eclipse.jdt.core.tests.compiler.regression.LookupTest" name="test075 - 1.3" time="0.1">:

<failure message="Unexpected failure.&#10;----------- Expected ------------&#10;&#10;------------ but was ------------&#10;----------\n&#10;1. ERROR in package2\MyList.java (at line 4)\n&#10;&#9;public class MyList extends AbstractList implements List {\n&#10;&#9;             ^^^^^^\n&#10;Duplicate methods named spliterator with the parameters () and () are inherited from the types List and Collection\n&#10;----------\n&#10;&#10;--------- Difference is ----------&#10; expected:&lt;[]&gt; but was:&lt;[----------\n&#10;1. ERROR in package2\MyList.java (at line 4)\n&#10;&#9;public class MyList extends AbstractList implements List {\n&#10;&#9;             ^^^^^^\n&#10;Duplicate methods named spliterator with the parameters () and () are inherited from the types List and Collection\n&#10;----------\n&#10;]&gt;" type="junit.framework.ComparisonFailure">junit.framework.ComparisonFailure: Unexpected failure.
----------- Expected ------------

------------ but was ------------
----------\n
1. ERROR in package2\MyList.java (at line 4)\n
	public class MyList extends AbstractList implements List {\n
	             ^^^^^^\n
Duplicate methods named spliterator with the parameters () and () are inherited from the types List and Collection\n
----------\n

--------- Difference is ----------
 expected:&lt;[]&gt; but was:&lt;[----------\n
1. ERROR in package2\MyList.java (at line 4)\n
	public class MyList extends AbstractList implements List {\n
	             ^^^^^^\n
Duplicate methods named spliterator with the parameters () and () are inherited from the types List and Collection\n
----------\n
]&gt;
	at org.eclipse.jdt.core.tests.junit.extension.TestCase.assertStringEquals(TestCase.java:230)
	at org.eclipse.jdt.core.tests.junit.extension.TestCase.assertEquals(TestCase.java:206)
	at org.eclipse.jdt.core.tests.compiler.regression.AbstractRegressionTest.runTest(AbstractRegressionTest.java:2259)
	at org.eclipse.jdt.core.tests.compiler.regression.AbstractRegressionTest.runTest(AbstractRegressionTest.java:2080)
	at org.eclipse.jdt.core.tests.compiler.regression.AbstractRegressionTest.runConformTest(AbstractRegressionTest.java:1173)
	at org.eclipse.jdt.core.tests.compiler.regression.LookupTest.test075(LookupTest.java:2540)
	at org.eclipse.jdt.core.tests.util.CompilerTestSetup.run(CompilerTestSetup.java:55)
	at org.eclipse.test.EclipseTestRunner.run(EclipseTestRunner.java:501)
	at org.eclipse.test.EclipseTestRunner.run(EclipseTestRunner.java:259)
	at org.eclipse.test.CoreTestApplication.runTests(CoreTestApplication.java:36)
	at org.eclipse.test.CoreTestApplication.run(CoreTestApplication.java:32)
	at org.eclipse.equinox.internal.app.EclipseAppContainer.callMethodWithException(EclipseAppContainer.java:587)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:198)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:353)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:180)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:629)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:584)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1438)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1414)
	at org.eclipse.core.launcher.Main.main(Main.java:34)

Reproducible: Always on all OS's

Steps to Reproduce:
Use eclipse-Automated-Tests-4.2 to run automated tests with jdk8.
1. Install jdk8 from http://jdk8.java.net/download.html (b87)
2. Run  jdtcorecompiler tests
Comment 1 Stephan Herrmann CLA 2013-05-01 14:23:00 EDT
JDT 3.8 (4.2) can not and will not work with jdk8 (which itself is still a 
moving target).

Please see bug 380190 which is the umbrella bug for all efforts towards
supporting Java 8 (development happening in branch BETA_JAVA8).

You might also be interested in bug 390889 which discusses the difficulties
to support Java 7 projects compiled against a JRE 8. Long story short:
A Java 7 compiler should never try to compile against a JRE 8.
True compatibility for the scenario is not specified anywhere and may not
even be possible because of default methods that have been added to the
libraries in a way that ensures runtime compatibility of old code but
*not* compile time compatibility with a Java 7 compiler and new libraries.

Hence I'm marking this bug as invalid, it's s.t. we cannot support by design.
Comment 2 Stephan Herrmann CLA 2013-05-01 14:26:50 EDT
(In reply to comment #1)
> Hence I'm marking this bug as invalid, it's s.t. we cannot support by design.

referring to the design of Java 8 (not JDT's deliberation).
Comment 3 Jay Arthanareeswaran CLA 2013-05-22 05:51:59 EDT
Verified for 4.3 RC1