invokestatic #3; //InterfaceMethod C.foo:()V
invokestatic #3; //Method I.foo:()V
where
class C {...}
interface I {...}
JVMS-5.4.3.3 Method Resolution:
" If C is an interface, method resolution throws an IncompatibleClassChangeError."
JVMS-5.4.3.4 Interface Method Resolution:
"If C is not an interface, interface method resolution throws an IncompatibleClassChangeError"
Test case attached(IntfMethod.java):
$ java -Xverify:all IntfMethod
testSpecialIntf: FAILED (no exception)
testStaticIntf: FAILED (no exception)
testSpecialClass: FAILED (no exception)
testStaticClass: FAILED (no exception)
- duplicates
-
JDK-8142899 MethodHandle invoke should check method constant tag.
-
- Closed
-
- is cloned by
-
JDK-8145148 InterfaceMethod CP entry pointing to a class should cause ICCE
-
- Resolved
-
- relates to
-
JDK-8143317 jdk/lambda/vm/InterfaceAccessFlagsTest.java fails with IncompatibleClassChangeError
-
- Resolved
-
-
JDK-8143320 Many vm/runtime/defmeth/scenarios/ConflictingDefaults_v50_none_direct_noredefine fail with ICCE, ExitCode: 97
-
- Closed
-
-
JDK-8142899 MethodHandle invoke should check method constant tag.
-
- Closed
-
-
JDK-8039450 [TESTBUG] Integrate tests on VM access checks into regular test execution
-
- Closed
-