RFR: 8367938: Test Serialization Compatibility of Class Objects

Alan Bateman alanb at openjdk.org
Tue Dec 2 13:09:20 UTC 2025


On Mon, 1 Dec 2025 20:30:30 GMT, Roger Riggs <rriggs at openjdk.org> wrote:

> 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.

test/jdk/java/io/Serializable/ClassSerialization/ArchivedClasses.txt line 4:

> 2: # Version: 25.0.1+8-LTS-27
> 3: # Classes: 2620
> 4: # Module java.base

I'm in two minds on the maintainability of having this file checked into the repo. 

As to where a golden file (or files) might live then maybe test/jdk/tools/sincechecker sets some precedence.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/28586#discussion_r2581099309


More information about the core-libs-dev mailing list