JDK-8026299 : Lambda: Invokespecial gets an IncompatibleClassChangeError when it should get AbstractMethodError
  • Type: Bug
  • Component: hotspot
  • Sub-Component: runtime
  • Affected Version: hs25
  • Priority: P3
  • Status: Closed
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2013-10-11
  • Updated: 2014-06-26
  • Resolved: 2013-10-15
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.
JDK 8 Other
8Fixed hs25Fixed
Related Reports
Blocks :  
Duplicate :  
Description
With the addition of interfacemethodref to invokespecial and invokestatic, and the updated JVMS 0.63 draft spec, invokespecial and invokestatic need to not throw IncompatibleClassChangeError if they use an interfacemethodref that resolves to an abstract method. Invokevirtual needs to throw an IncompatibleClassChangeError if it gets an interfacemethodref.
Comments
for aurora, failing langtools test: tools/javac/lambdaShapes/org/openjdk/tests/vm/DefaultMethodsTest.java
15-10-2013

Failed tests in vm.nsk.defmeth.DefaultMethodsTest. SuperMethodsTest.testSuperNull: 1-3, expect AME, got ICCE (with the fix this no longer throws ICCE, but throws AME) SuperMethodsTest.testSuperNonDefault1: 1-3: expect AME, got ICCE (with the fix this no longer throws ICCE, but throws AME) RULE vm/runtime/defmeth/scenarios/SuperCall_v52_none_direct_noredefine ExitCode 97 RULE vm/runtime/defmeth/scenarios/SuperCall_v52_none_direct_redefine ExitCode 97 RULE vm/runtime/defmeth/scenarios/SuperCall_v52_none_reflect_noredefine ExitCode 97 RULE vm/runtime/defmeth/scenarios/SuperCall_v52_none_reflect_redefine ExitCode 97 RULE vm/runtime/defmeth/scenarios/SuperCall_v52_strict_direct_noredefine ExitCode 97 RULE vm/runtime/defmeth/scenarios/SuperCall_v52_strict_direct_redefine ExitCode 97 RULE vm/runtime/defmeth/scenarios/SuperCall_v52_strict_reflect_noredefine ExitCode 97 RULE vm/runtime/defmeth/scenarios/SuperCall_v52_strict_reflect_redefine ExitCode 97 RULE vm/runtime/defmeth/scenarios/SuperCall_v52_sync_direct_noredefine ExitCode 97 RULE vm/runtime/defmeth/scenarios/SuperCall_v52_sync_direct_redefine ExitCode 97 RULE vm/runtime/defmeth/scenarios/SuperCall_v52_sync_reflect_noredefine ExitCode 97 RULE vm/runtime/defmeth/scenarios/SuperCall_v52_sync_reflect_redefine ExitCode 97 RULE vm/runtime/defmeth/scenarios/SuperCall_v52_syncstrict_direct_noredefine ExitCode 97 RULE vm/runtime/defmeth/scenarios/SuperCall_v52_syncstrict_direct_redefine ExitCode 97 RULE vm/runtime/defmeth/scenarios/SuperCall_v52_syncstrict_reflect_noredefine ExitCode 97 RULE vm/runtime/defmeth/scenarios/SuperCall_v52_syncstrict_reflect_redefine ExitCode 97
11-10-2013