-
Bug
-
Resolution: Fixed
-
P2
-
hs25, 8
-
b120
-
b11
-
Not verified
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8045416 | 8u25 | Lois Foltan | P2 | Resolved | Fixed | b01 |
JDK-8040907 | 8u20 | Lois Foltan | P2 | Closed | Fixed | b12 |
JDK-8053334 | emb-8u26 | Lois Foltan | P2 | Resolved | Fixed | b17 |
public interface I1 { default public void m() {}}
public interface I2 { default public void m() {}}
public class T3 implements I1, I2 { public static void m() {}}
public class T4 extends T3 {}
Call site: invokestatic T4.m
JVMS: T3.m is invoked.
JVM behavior: IncompatibleClassChangeError: Expected static method p1.T4.m()I
According to JVMS, T4.m resolves to T3.m which should be invoked.
Test case is attached.
I1.m, I2.m & T3.m are crucial to get the bug to occur.
The most probable culprit is 8026066 (the test starts failing with 8b120).
ILW = HLH = P2
I = H = error instead of successful method invocation
L = L = conflicting default methods + static method are required; javac won't compile such hierarchy
W = H = no workaround
- backported by
-
JDK-8045416 invokestatic: IncompatibleClassChangeError trying to invoke static method from a parent in presence of conflicting defaults
- Resolved
-
JDK-8053334 invokestatic: IncompatibleClassChangeError trying to invoke static method from a parent in presence of conflicting defaults
- Resolved
-
JDK-8040907 invokestatic: IncompatibleClassChangeError trying to invoke static method from a parent in presence of conflicting defaults
- Closed
- is blocked by
-
JDK-8035602 Test case from JDK-8033150 crashes in within sharedRuntime.cpp/AdapterHandlerLibrary::get_adapter
- Closed
- relates to
-
JDK-8026066 InvokeInterface needs to throw ICCE for static methods
- Closed