RFR: JDK-8241627: Updating ASM to 8.0 for JDK 15
Vicente Romero
vicente.romero at oracle.com
Mon Apr 13 15:05:49 UTC 2020
Hi all,
Please review this patch that updates the ASM version to appear in JDK15
(from 7.0 to 8.0). Version 8.0 is compatible with JDK14 plus it has
several experimental APIs to cover records and sealed types. We have
also updated a number of tests (mostly record oriented tests) to use the
updated APIs. Thanks to Igor Ignatyev for his help in particular for
finding the source and fixing an issue that was provoking a failure at test:
open/test/jdk/jdk/jfr/jvm/TestLogOutput.java
This is the only substantial change that makes our copy of ASM different
from the original, apart from several @SuppressWarnings that were added
for the build to pass. The patch from Igor is this:
diff -r b2ca6a37c16b
src/java.base/share/classes/jdk/internal/org/objectweb/asm/Constants.java
---
a/src/java.base/share/classes/jdk/internal/org/objectweb/asm/Constants.java
Fri Apr 10 07:04:27 2020 -0700
+++
b/src/java.base/share/classes/jdk/internal/org/objectweb/asm/Constants.java
Fri Apr 10 17:14:59 2020 -0700
@@ -222,15 +222,15 @@
}
static boolean isWhitelisted(final String internalName) {
- if (!internalName.startsWith("org/objectweb/asm/")) {
+ if (!internalName.startsWith("jdk/internal/org/objectweb/asm/")) {
return false;
}
String member =
"(Annotation|Class|Field|Method|Module|RecordComponent|Signature)";
return internalName.contains("Test$")
|| Pattern.matches(
- "org/objectweb/asm/util/Trace" + member +
"Visitor(\\$.*)?", internalName)
+ "jdk/internal/org/objectweb/asm/util/Trace" + member +
"Visitor(\\$.*)?", internalName)
|| Pattern.matches(
- "org/objectweb/asm/util/Check" + member +
"Adapter(\\$.*)?", internalName);
+ "jdk/internal/org/objectweb/asm/util/Check" + member +
"Adapter(\\$.*)?", internalName);
}
static void checkIsPreview(final InputStream classInputStream) {
And it is basically adapting our copy to the different package prefix we
use compared to the original ASM code. I have prepared two webrevs one
at [1] which has the full change and one at [2] for which I have removed
a lot of javadoc from the full webrev for reviewers that prefer less
javadoc.
Thanks,
Vicente
PS, thanks to Remi for fixing in a very short time a bug I found in ASM
related to the parsing of Record attributes
[1] http://cr.openjdk.java.net/~vromero/8241627/full/webrev.01/
[2] http://cr.openjdk.java.net/~vromero/8241627/no_javadoc/webrev.01/
More information about the core-libs-dev
mailing list