Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8141857 | emb-9 | Harold Seigel | P2 | Resolved | Fixed | team |
According to http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-2.html#jvms-2.9-210 for classes version 51, 52 <clinit>()V methods without ACC_STATIC are regular methods.
According to http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.6-200-A and following assertions following methods should throw CFE:
* 'public private protected' method for class (http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.6-200-A.2)
* 'private protected abstract' method for interface (http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.6-200-A.3, http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.6-200-A.4)
* 'protected final' method in interface (http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.6-200-A.3)
Actually VM accepts them (it looks like it ignores access_flags in this case).
Was found on jdk9b78, jck tests are under development, tck_red will be added after tests completion.
Some examples are attached, more examples will be added by request.
According to http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.6-200-A and following assertions following methods should throw CFE:
* 'public private protected' method for class (http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.6-200-A.2)
* 'private protected abstract' method for interface (http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.6-200-A.3, http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.6-200-A.4)
* 'protected final' method in interface (http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.6-200-A.3)
Actually VM accepts them (it looks like it ignores access_flags in this case).
Was found on jdk9b78, jck tests are under development, tck_red will be added after tests completion.
Some examples are attached, more examples will be added by request.
- backported by
-
JDK-8141857 VM permits illegal <clinit> access_flags, versions 51-52
-
- Resolved
-
- relates to
-
JDK-8130682 2.9: Clarify class and interface initialization methods
-
- Closed
-