JDK-8244763: Update --release 8 symbol information after JSR 337 MR3

Jonathan Gibbons jonathan.gibbons at oracle.com
Thu May 28 14:47:13 UTC 2020


Looks good to me.

-- Jon

On 5/18/20 9:36 AM, Jan Lahoda wrote:
> I apologize, I used a wrong patch for the "data" webrev. The "class 
> name java/util/jar/Attributes$Name" entry in java.base-7.sym.txt is 
> first adding field descriptions, and then removing the old ones:
> ---
>> class name java/util/jar/Attributes$Name
>> field name EXTENSION_INSTALLATION descriptor 
>> Ljava/util/jar/Attributes$Name; flags 19
>> field name IMPLEMENTATION_VENDOR_ID descriptor 
>> Ljava/util/jar/Attributes$Name; flags 19
>> field name IMPLEMENTATION_URL descriptor 
>> Ljava/util/jar/Attributes$Name; flags 19
>> -field name EXTENSION_INSTALLATION descriptor 
>> Ljava/util/jar/Attributes$Name;
>> -field name IMPLEMENTATION_VENDOR_ID descriptor 
>> Ljava/util/jar/Attributes$Name;
>> -field name IMPLEMENTATION_URL descriptor 
>> Ljava/util/jar/Attributes$Name;---
>
> The correct order (and the order generated by the tool in the 
> webrev.00-create-symbols/ webrev) is to first remove the field 
> descriptions and then add the new ones:
> ---
>> class name java/util/jar/Attributes$Name
>> -field name EXTENSION_INSTALLATION descriptor 
>> Ljava/util/jar/Attributes$Name;
>> -field name IMPLEMENTATION_VENDOR_ID descriptor 
>> Ljava/util/jar/Attributes$Name;
>> -field name IMPLEMENTATION_URL descriptor 
>> Ljava/util/jar/Attributes$Name;
>> field name EXTENSION_INSTALLATION descriptor 
>> Ljava/util/jar/Attributes$Name; flags 19
>> field name IMPLEMENTATION_VENDOR_ID descriptor 
>> Ljava/util/jar/Attributes$Name; flags 19
>> field name IMPLEMENTATION_URL descriptor 
>> Ljava/util/jar/Attributes$Name; flags 19
> ---
>
> An updated webrev is the correct data is here:
> http://cr.openjdk.java.net/~jlahoda/8244763/webrev.01-data/
>
> The only change is the above difference in order of entries in 
> Attributes$Name.
>
> Sorry for trouble.
>
> Jan
>
> On 18. 05. 20 16:55, Jan Lahoda wrote:
>> Hi,
>>
>> Some new APIs have been introduced in JSR 337 MR3 (JDK 8). We should 
>> update the historical data for JDK 8 with these new APIs.
>>
>> As this was the first time we need to update data for a release that 
>> other release data use as a baseline, it was necessary to improve the 
>> CreateSymbols tool a little:
>> -adding ability to ignore synchronized and native flags for methods 
>> (as these don't affect the API)
>> -when analyzing a new entry (method/field/class), and multiple 
>> existing entries compatible with the new one exist, the existing 
>> entry that matches the baseline is chosen (this helps to eliminate 
>> unnecessary entries, esp. when the synchronized or native flag changes)
>> -when replacing/updating a release data, the original approach was to 
>> remove the data for the release, and read them from classfiles, and 
>> build the record again from scratch. This does not work well for 
>> baseline data, so the new approach is:
>> --keep all the existing data
>> --the new data are load into a new auxiliary slot, called "$"
>> --the old data for the given release are deleted
>> --the auxiliary release is renamed from "$" to the correct release name
>>
>> Together these changes allow to minimize the updates to JDK 8 data, 
>> to mostly only changes in the MR3, with some extra changes like 
>> new/removed overrides (where the superclass has the method that 
>> is/was overridden).
>>
>> The proposed changes to CreateSymbols are:
>> http://cr.openjdk.java.net/~jlahoda/8244763/webrev.00-create-symbols/
>>
>> The proposed updates to the historical data are:
>> http://cr.openjdk.java.net/~jlahoda/8244763/webrev.00-data/
>>
>> Note the changes only apply for JDK 8 historical data, so JDK 8 data 
>> are updated, and JDK 7 and 9 data undo the changes.
>>
>> JBS: https://bugs.openjdk.java.net/browse/JDK-8244763
>>
>> The intent is to backport to JDK 11u.
>>
>> How does this look?
>>
>> Thanks!
>>
>> Jan



More information about the build-dev mailing list