RFR: JDK-8241627: Updating ASM to 8.0 for JDK 15

Vicente Romero vicente.romero at oracle.com
Fri Apr 17 20:28:05 UTC 2020


ping, any other comment? are we ready to push this change?

Vicente

On 4/13/20 11:05 AM, Vicente Romero wrote:
> 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