RFR: 8358624: ImmutableDescriptor violates equals/hashCode contract after deserialization [v3]
Kevin Walls
kevinw at openjdk.org
Wed Jun 25 17:28:11 UTC 2025
> Hashcode needs to be reset to -1 to force its recalculation on next call, after deserialization.
>
> The change in the readResolve() method is the fix for this problem. While here I added similar lines in other methods that may update fields (although these are noted as not supported, as they change a class supposedly "immutable").
>
> Added a test. There is a test for serialization for this class, but I found it clearer to add the test for this specific recently discovered issue in its own test file.
Kevin Walls has updated the pull request incrementally with one additional commit since the last revision:
more comments!
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/25758/files
- new: https://git.openjdk.org/jdk/pull/25758/files/6f28e857..48c46627
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=25758&range=02
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=25758&range=01-02
Stats: 3 lines in 1 file changed: 0 ins; 0 del; 3 mod
Patch: https://git.openjdk.org/jdk/pull/25758.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/25758/head:pull/25758
PR: https://git.openjdk.org/jdk/pull/25758
More information about the serviceability-dev
mailing list