On Wed, 8 Apr 2026 21:16:15 GMT, Chris Plummer <[email protected]> wrote:

>> 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.
>
> Chris Plummer has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   remove locking on Integer

I'm also ok with removing `EARelockingValueBased` already with this pr. I think 
running with `DiagnoseSyncOnValueBasedClasses=2` can be removed then too.

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

Changes requested by rrich (Reviewer).

PR Review: https://git.openjdk.org/jdk/pull/30560#pullrequestreview-4087043512

Reply via email to