> Fixes a rare NullPointerException in X500Principal.hashCode() and equals() on 
> aarch64, where thisX500Name is null.
> 
> I made `thisX500Name` final. The field was non-final only because 
> `readObject` sets it, and deserialization doesn't run a constructor. I used 
> `Unsafe.putReference` in `readObject` for that, which is how the JDK handles 
> this elsewhere:
> 
> - [x] I confirm that I make this contribution in accordance with the [OpenJDK 
> Interim AI Policy](https://openjdk.org/legal/ai).

Chris Hegarty 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 four additional 
commits since the last revision:

 - Merge remote-tracking branch 'upstream/master' into 
x500principal-safe-publication
 - volatile
 - revert
 - Make X500Principal.thisX500Name final to fix unsafe publication

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/33253/files
  - new: https://git.openjdk.org/jdk/pull/33253/files/05912e09..a001ba34

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=33253&range=01
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=33253&range=00-01

  Stats: 66187 lines in 1642 files changed: 37448 ins; 20773 del; 7966 mod
  Patch: https://git.openjdk.org/jdk/pull/33253.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/33253/head:pull/33253

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

Reply via email to