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

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

Commit messages:
 - 8386963: [lworld] Improve the exception message from Object synchronization 
methods on value objects

Changes: https://git.openjdk.org/valhalla/pull/2568/files
  Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=2568&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8386963
  Stats: 12 lines in 1 file changed: 10 ins; 0 del; 2 mod
  Patch: https://git.openjdk.org/valhalla/pull/2568.diff
  Fetch: git fetch https://git.openjdk.org/valhalla.git pull/2568/head:pull/2568

PR: https://git.openjdk.org/valhalla/pull/2568

Reply via email to