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

Vicente Romero vicente.romero at oracle.com
Wed Apr 22 01:31:22 UTC 2020


Hi,

Thanks for the reviews. I have just pushed the patch, ASM 8.0.1 will be 
the new version we will be using starting from JDK 15.

Thanks,
Vicente

On 4/20/20 1:11 PM, Vicente Romero wrote:
> Hi Chris,
>
> On 4/20/20 4:43 AM, Chris Hegarty wrote:
>> I skimmed over the webrev, the changes seem fine.
>
> thanks for the review
>>
>> Thanks for updating the record serialization tests that use ASM.
>
> sure np,
>
>>
>> -Chris.
>
> Vicente
>
>>
>>
>>> On 17 Apr 2020, at 21:28, Vicente Romero <vicente.romero at oracle.com> 
>>> wrote:
>>>
>>> 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