On Fri, 14 Nov 2025 20:15:03 GMT, Roger Riggs <[email protected]> wrote:

>> Redo change (8371732) that failed when the updated class objects were 
>> incompatible.
>> The fields of classes are changed to allow a more compact form of storage.
>> 
>> To ensure compatibility of the class objects, the fields are explicitly 
>> declared in SerialPersistentFields with the original field types.
>> The fields are marked `transient` to indicate the field declarations are not 
>> used for serialization.
>> The affected classes are java.time.LocalDate, MonthDay, and YearMonth.
>> Tests are added to verify the types and names of serialized fields of each 
>> class.
>> 
>> HijrahDate only changes the field types, the fields are transient and there 
>> is no change to the serialized from of the HijrahDate.class object.
>
> Roger Riggs has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   Use "Java SE 8" instead of version 1.8

Using transient everywhere should have been the preferred solution but 
compatibility wins any argument at this point.
The actual serialized form is defined by the combination of writeReplace and 
readResolve and its documentation.
The other doc/spec is just for documentation. if/when other classes are 
changed, similar care will be needed.

-------------

PR Comment: https://git.openjdk.org/jdk/pull/28274#issuecomment-3542251560

Reply via email to