<i18n dev> RFR: 8371732: [redo] Change java.time month/day field types to 'byte'

Roger Riggs rriggs at openjdk.org
Wed Nov 12 18:37:07 UTC 2025


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.

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

Commit messages:
 - Change some java.time fields from int or short to byte to save on heap size.

Changes: https://git.openjdk.org/jdk/pull/28274/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=28274&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8371732
  Stats: 124 lines in 7 files changed: 100 ins; 0 del; 24 mod
  Patch: https://git.openjdk.org/jdk/pull/28274.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/28274/head:pull/28274

PR: https://git.openjdk.org/jdk/pull/28274


More information about the i18n-dev mailing list