JDK-8031059 : invokestatic: ICCE trying to invoke static method when it clashes with an abstract method inherited from an interface
  • Type: Bug
  • Component: hotspot
  • Sub-Component: runtime
  • Affected Version: hs25
  • Priority: P1
  • Status: Closed
  • Resolution: Fixed
  • Submitted: 2013-12-26
  • Updated: 2014-03-05
  • Resolved: 2014-01-10
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 JDK 9 Other
8Fixed 9Fixed hs25Fixed
Related Reports
Relates :  
Description
Consider the following case: 
   public interface I1 { default public void m() {}} 
   public interface I2 extends I1 { public void m(); } 
   public class T3 implements I2 { public static void m() {}} 

NB: T3 isn't marked abstract. 

Call site: T3 { invokestatic T3.m()V T3 } 

VM behavior (test case attached): IncompatibleClassChangeError: Expected static method p1.T3.m()I

JVMS: T3.m should be invoked. 

It's a regression from the fix for JDK-8027804 (verified that the test passes w/o the fix).

ILW = HLH = P2
I = H = JVMS violation 
L = L = forbidden by JLS; a case of separate compilation issue
W = H = none 
Comments
TestReabstractStatic.java passes on b124: C:\dev\bug-verify\jdk8\bug_8031059\test>C:\java-release-eng\debug\jdk1.8.0_b124\jdk1.8.0\fastdebug\bin\java -jar c:\utils\jtreg\jtreg-41\jtreg\lib\jtreg.jar -vt -javacoption:-XDignore.symbol.file ..\test\runtime\DefaultMethods Passed: runtime/DefaultMethods/TestReabstractStatic.java compile: 4.147 seconds build: 0.014 seconds main: 0.451 seconds Test results: passed: 1 Report written to C:\dev\bug-verify\jdk8\bug_8031059\test\JTreport\html\report.html Results written to C:\dev\bug-verify\jdk8\bug_8031059\test\JTwork
22-01-2014

Release team: Approved for fixing
09-01-2014

Updated to P1 to get this fix into JDK 8.
08-01-2014

Relevant to default methods security assessment.
27-12-2013