JDK-8025292 : Bunch of vm/constantpool/resolveIntMethod tests failed
  • Type: Bug
  • Component: hotspot
  • Sub-Component: runtime
  • Affected Version: hs25
  • Priority: P3
  • Status: Closed
  • Resolution: Duplicate
  • OS: generic
  • CPU: generic
  • Submitted: 2013-09-24
  • Updated: 2013-10-08
  • Resolved: 2013-10-08
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
Other
hs25Resolved
Related Reports
Relates :  
Description
Bunch of JCK8 b30 test cases failed with JDK8 b107:

vm/constantpool/resolveIntMethod/resolveIntMethod004/resolveIntMethod00401m7/resolveIntMethod00401m7
vm/constantpool/resolveIntMethod/resolveIntMethod004/resolveIntMethod00401m8/resolveIntMethod00401m8
vm/constantpool/resolveIntMethod/resolveIntMethod004/resolveIntMethod00401m9/resolveIntMethod00401m9
vm/constantpool/resolveMethod/resolveMethod006/resolveMethod00602m1/resolveMethod00602m1
vm/constantpool/resolveMethod/resolveMethod006/resolveMethod00602m2/resolveMethod00602m2
vm/constantpool/resolveMethod/resolveMethod007/resolveMethod00703m7/resolveMethod00703m7
vm/constantpool/resolveMethod/resolveMethod007/resolveMethod00703m8/resolveMethod00703m8
vm/constantpool/resolveMethod/resolveMethod007/resolveMethod00703m9/resolveMethod00703m9
vm/constantpool/resolveMethod/resolveMethod007/resolveMethod00704m3/resolveMethod00704m3
Comments
With JDK8 JVMS 0.6.3 + fix for JDK-8025604 spec, all of these tests need to be updated to match the specification changes. The update is recorded in JCK-7301660, so closing this as a duplicate of that bug and copying the specific tests into the two buckets: ACC_PRIVATE and ACC_STATIC.
08-10-2013

Evaluation: [1] These tests are invalid: default interface methods cannot be declared 'private' or 'protected'. If a default method does not have an access modifier in the Java source code, it is implicitly set to ACC_PUBLIC by javac: vm/constantpool/resolveMethod/resolveMethod006/resolveMethod00602m1/resolveMethod00602m1 vm/constantpool/resolveMethod/resolveMethod006/resolveMethod00602m2/resolveMethod00602m2 It may be possible to rewrite the tests to ensure that the JVM refuses to load an interface class if this class has a default method that does not have ACC_PUBLIC access flag. (I am not sure, please consult the spec). [2] These tests are valid: 'invokestatic InterfaceMethod <class>.m:"()I";' should invoke the method m() in the parent interface (or in the spec "non-abstract most-specific method"). Instead, we executed the method in the parent interface's parent interface. vm/constantpool/resolveIntMethod/resolveIntMethod004/resolveIntMethod00401m7/resolveIntMethod00401m7 vm/constantpool/resolveIntMethod/resolveIntMethod004/resolveIntMethod00401m8/resolveIntMethod00401m8 vm/constantpool/resolveIntMethod/resolveIntMethod004/resolveIntMethod00401m9/resolveIntMethod00401m9 vm/constantpool/resolveMethod/resolveMethod007/resolveMethod00703m7/resolveMethod00703m7 vm/constantpool/resolveMethod/resolveMethod007/resolveMethod00703m8/resolveMethod00703m8 vm/constantpool/resolveMethod/resolveMethod007/resolveMethod00703m9/resolveMethod00703m9 [3] This test is valid -- The test checks that if there are more than one non-abstract most-specific matching methods, method resolution throws an IncompatibleClassChangeError (invokestatic). vm/constantpool/resolveMethod/resolveMethod007/resolveMethod00704m3/resolveMethod00704m3
24-09-2013