On Mon, 21 Aug 2023 16:04:49 GMT, Raffaello Giulietti <[email protected]>
wrote:
>> This improves the identification of the serialization magic fields and
>> methods.
>
> Raffaello Giulietti has updated the pull request incrementally with one
> additional commit since the last revision:
>
> Removed a spurious, unintended file.
src/java.base/share/classes/java/io/ObjectStreamClass.java line 1670:
> 1668: ObjectStreamField[] serialPersistentFields = null;
> 1669: try {
> 1670: Field f = getDeclaredField(cl, ObjectStreamField[].class,
> "serialPersistentFields");
This can technically be a breaking change, as it was supported for the field to
have a declared type that is assignable from `ObjectStreamField[]`, as long as
it held an `ObjectStreamField[]` instance at runtime, even if it wasn’t
officially supported.
class Example implements Serializable {
// This used to work before this patch in OpenJDK
private static final Object serialPersistentFields = new
ObjectStreamField[] {
// ...
};
// ...
}
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/15364#discussion_r1300341941