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

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

Commit messages:
 - Make X500Principal.thisX500Name final to fix unsafe publication

Changes: https://git.openjdk.org/jdk/pull/33253/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=33253&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8393730
  Stats: 8 lines in 1 file changed: 6 ins; 0 del; 2 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