Given the following (indirectly compiled in such a way to avoid errors):
interface J { int m(); }
interface I extends J { default int m() { return J.super.m(); } }
class C implements I {}
C c = new C(); c.m(); // expected: AME; actual: ICCE
An AbstractMethodError is expected but due to recent changes in Hotspot for the support of private methods this has changed to an IncompatibleClassChangeError.
interface J { int m(); }
interface I extends J { default int m() { return J.super.m(); } }
class C implements I {}
C c = new C(); c.m(); // expected: AME; actual: ICCE
An AbstractMethodError is expected but due to recent changes in Hotspot for the support of private methods this has changed to an IncompatibleClassChangeError.
- duplicates
-
JDK-8026299 Lambda: Invokespecial gets an IncompatibleClassChangeError when it should get AbstractMethodError
-
- Closed
-