com/sun/jdi/EATests.java synchronizes on an Integer instance. Although this 
currently works, it is discouraged. See the following doc on value based 
classes:

https://docs.oracle.com/en/java/javase/24/docs/api/java.base/java/lang/doc-files/ValueBased.html

"Synchronization on instances of value-based classes is strongly discouraged, 
because the programmer cannot guarantee exclusive ownership of the associated 
monitor.

Identity-related behavior of value-based classes may change in a future 
release. For example, synchronization may fail."

That second part is realized by Valhalla. The synchronization fails with:

`java.lang.IdentityException: Cannot synchronize on an instance of value class 
java.lang.Integer`

Valhalla CR [JDK-8372831](https://bugs.openjdk.org/browse/JDK-8372831) covers 
that failure, but I thought it best to address this in mainline first.

Tested with all of CI tier1, tier2 svc, and tier5 svc.

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

Commit messages:
 - don't sync on an Integer

Changes: https://git.openjdk.org/jdk/pull/30560/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=30560&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8381609
  Stats: 7 lines in 1 file changed: 1 ins; 0 del; 6 mod
  Patch: https://git.openjdk.org/jdk/pull/30560.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/30560/head:pull/30560

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

Reply via email to