> 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 with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains six additional commits since the last revision: - Merge remote-tracking branch 'upstream/master' into 8358624_ImmutableDescriptor_hashcode - spelling - Exception name - whitespace - whitespace - 8358624: ImmutableDescriptor violates equals/hashCode contract after deserialization ------------- Changes: - all: https://git.openjdk.org/jdk/pull/25758/files - new: https://git.openjdk.org/jdk/pull/25758/files/a94b49ef..6f28e857 Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=25758&range=01 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=25758&range=00-01 Stats: 14540 lines in 274 files changed: 10342 ins; 3094 del; 1104 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