JDK-6636739 : 2 java_util/generics/list cases fail with java.lang.IncompatibleClassChangeError
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 6u4p
  • Priority: P2
  • Status: Closed
  • Resolution: Duplicate
  • OS: solaris
  • CPU: x86
  • Submitted: 2007-12-03
  • Updated: 2010-08-07
  • Resolved: 2007-12-06
Related Reports
Duplicate :  
Description
testbase: /net/cady/export/dtf/unified/knight-ws/suites/6.0_cady/libs
failing testcases:
java_util/generics/list/LinkedListDoubleTest
java_util/generics/list/LinkedListIntegerTest

OS: Soalris-i586
JDK: pass with 6u4 b09, fail with 6u4 p b01

Error:
Note: Recompile with -Xlint:unchecked for details.
Exception in thread "main" java.lang.IncompatibleClassChangeError
      at java.util.AbstractList.equals(AbstractList.java:504)
      at LinkedListDoubleTest.LinkedListDoubleTestTest01(LinkedListDoubleTest.java:355)
      at LinkedListDoubleTest.main(LinkedListDoubleTest.java:101)

Testcase sources:
http://jsqalab.sfbay/results/cady/export/results/libs/6u4p/b01/6.0_cady-6u4p-libs-IA10_c1-2007-11-28-17-10-10-0208/dtftest.SunOS.x86/LinkedListDoubleTest/

Log:
http://jsqalab.sfbay/results/cady/export/results/libs/6u4p/b01/6.0_cady-6u4p-libs-IA10_c1-2007-11-28-17-10-10-0208/dtftest.SunOS.x86/LinkedListDoubleTest/LinkedListDoubleTest.log
Appears to be -client JVM only problem.  Passes with -server JVM, yet fails when specifying -client.

Reverting to JDK 6 implementations of Integer.java and Double.java still result in -client JVM test failure.

Comments
EVALUATION Possible thought (from Paul H) was that it may be a c1 bug. A little further investigation on java.util.ArrayList.equals(). Did the experiments & observations: - c1 does compile the method. (test fails) - c2 does not compile the method. (test passes) - c1 explicitly setting -Xcomp, (test passes) * In this test I see java.util.AbstractList.equals() gets compiled once. Then, it is thrown out (made not entrant) just prior executing the AbstractList.equals() in the test that was failing. It then it re-compiled just before the AbstractList.equals() is executed in the test case. - c1 with -XX:CompileThreshold at any value greater than 0, (test fails) - c1 with -XX:CompileThreshold=0, (test passes, as expected) - c2 with -Xcomp, (test passes) - c2 with -XX:CompileThreshold=1 (test passes) - c2 with -XX:CompileThreshold=0 (test passes, as expected) So, it appear that it is some kind of c1 bug. Could be a duplicate of 6610906 ? Re-assigning to vm compiler team.
05-12-2007