RFR: 8367938: Test Serialization Compatibility of Class Objects

Roger Riggs rriggs at openjdk.org
Mon Dec 1 21:19:30 UTC 2025


ArchivedClassesTest is added to compare archived serialized class objects against current classes.
Note: these are the serialized class objects themselves, for example `java.lang.String.class`, not instances of the class, for example "Hello".
The archived classes reference was built against the latest released version: 25.0.1+8.

The test fails if the serialized class reference archive is missing from the repository 
or if there are any incompatible changes to the serialized bytes.
Normal output from the test includes:
 - The version of the serialized class archive
 - Listing (if any) of incompatible classes
 - Listing of classes with compatible changes
 - Listing of classes in the archive that are not in the current version
 - Listing of classes in the current version not found in the archive

The change of java.nio.ByteOrder from a class to enum is reported as an approved incompatible change.

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

Commit messages:
 - Add ArchivedClassesTest to compare archived serialized classes against

Changes: https://git.openjdk.org/jdk/pull/28586/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=28586&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8367938
  Stats: 3145 lines in 2 files changed: 3145 ins; 0 del; 0 mod
  Patch: https://git.openjdk.org/jdk/pull/28586.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/28586/head:pull/28586

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


More information about the core-libs-dev mailing list