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