JDK-8026066 : InvokeInterface needs to throw ICCE for static methods
  • Type: Bug
  • Component: hotspot
  • Sub-Component: runtime
  • Affected Version: hs25
  • Priority: P2
  • Status: Closed
  • Resolution: Fixed
  • Submitted: 2013-10-08
  • Updated: 2014-01-29
  • Resolved: 2013-12-03
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
Relates :  
Relates :  
Relates :  
Description
StaticMethodsTest.testInvokeIntf() should result in ICCE, right now it's throwing NSME
Comments
Release team: Approved for fixing
03-12-2013

SQE is OK with fixing this in JDK8, fix is needed to comply with the spec.
02-12-2013

Justification: This is a bug in the default method handling needed to match the updated specification and correctly handle static methods in interfaces. Risk is low, this is an error handling condition that javac should not be generating. We have specific sqe tests to test the failure condition, and I have run jck.vm, jck.lang, jtreg java.util, java.lang, lambda, langtools lambda, vm nsk quick, vm nsk mlvm and the vm defmeth tests
02-12-2013

SQE DefMethTest StaticMethodsTest.testOverrideDefault and testInvokeIntf were both changed to match the specfication to expect ICCE.
30-11-2013

11/14/15: Specification will be updated - interface method resolution should SKIP static methods in java.lang.Object, but not in the interfacemethodref itself. JDK-8028741. Karen has a prototype fix without the spec modification that might be worth starting with.
30-11-2013

Also check StaticMethodsTest.testOverrideDefault
31-10-2013

NSME is a subclass of ICCE. Does the spec accept a subclass of ICCE? Check: java.lang.Object static?
09-10-2013