RFR (S) - JDK-8005689: InterfaceAccessFlagsTest failures in Lambda-JDK tests
Bharadwaj Yadavalli
bharadwaj.yadavalli at oracle.com
Mon Jan 7 10:15:39 PST 2013
Please review the changes at
http://cr.openjdk.java.net/~bharadwaj/8005689/webrev/
These changes:
a) refactor code that checks for the legality of interface modifiers for
Java class versions - pre-1.5, 1.5 and later but not Java 8. This
refactored condition has exactly the same functionality (details below)
as the existing condition for pre-1.5, 1.5 and later but not Java 8.
b) update legality of interface modifiers for Java class version 8.
Tests ran: JPRT, runThese, JCK tests (vm, lang done; api - still running)
Additional notes:
Existing interface modifier legality check :
if (!is_public || is_static || is_final || is_native ||
((is_synchronized || is_strict)&& major_gte_15&&
(!major_gte_8 || is_abstract)) ||
(!major_gte_8&& !is_abstract)) {
is_illegal = true;
}
* The above existing condition for pre-java 1.5, where major_gte_15 = F, and major_gte_8 = F, becomes
if (!is_public || is_static || is_final || is_native ||
((is_synchronized || is_strict)&& F&&
(!F || is_abstract)) ||
(!F&& !is_abstract)) {
is_illegal = true;
}
i.e.,
if (!is_public || is_static || is_final || is_native || !is_abstract)) {
is_illegal = true;
}
* The above existing condition for java 1.5 and later but not java 8, where major_gte_15 = T, and major_gte_8 = F, becomes
(!is_public || is_static || is_final || is_native ||
((is_synchronized || is_strict)&& T&&
(!F || is_abstract)) ||
(!F&& !is_abstract)) {
is_illegal = true;
}
i.e.,
(!is_public || is_static || is_final || is_native ||
is_synchronized || is_strict|| !is_abstract) {
is_illegal = true;
}
* The legality of interface modifiers for Java 8 is updated as perhttp://http://cr.openjdk.java.net/~dlsmith/jsr335-0.6.1/J.html#JJVMS-4.6
Thanks,
Bharadwaj
More information about the hotspot-runtime-dev
mailing list