On Thu, 25 Jun 2026 06:35:42 GMT, Jaikiran Pai <[email protected]> wrote:

>> Can I please get a review of this change which proposes to improve the 
>> exception message in `IllegalMonitorStateException` when it gets thrown for 
>> value objects?
>> 
>> With this change, we now report the following exception message when value 
>> objects are used to invoke `Object.wait()` and related methods:
>> 
>> 
>> jshell> o.wait()
>> |  Exception java.lang.IllegalMonitorStateException: current thread is not 
>> owner
>> |        at Object.wait0 (Native Method)
>> |        at Object.wait (Object.java:433)
>> |        at Object.wait (Object.java:387)
>> |        at (#2:1)
>> 
>> There were some thoughts about using an exception message of the form 
>> `Exception java.lang.IllegalMonitorStateException: object's type 
>> java.lang.Integer is not an identity class`. But since value objects cannot 
>> be synchronized upon, we decided it would be fine (and accurate) to reuse 
>> the same "current thread is not owner" exception message that we use for 
>> identity objects.
>> 
>> Given the nature of this change, I haven't added any new jtreg tests for 
>> this. Existing tests in tier1, tier2 and tier3 continue to pass after this 
>> change.
>> 
>> 
>> ---------
>> - [x] I confirm that I make this contribution in accordance with the 
>> [OpenJDK Interim AI Policy](https://openjdk.org/legal/ai).
>
> Jaikiran Pai 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 latest from lworld branch
>  - merge latest from lworld branch
>  - no need for ResourceMark
>  - 8386963: [lworld] Improve the exception message from Object 
> synchronization methods on value objects

Thank you David and Alan for the reviews.

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

PR Comment: https://git.openjdk.org/valhalla/pull/2568#issuecomment-4797235432

Reply via email to