On Thu, 18 Jun 2026 13:24:56 GMT, Jaikiran Pai <[email protected]> wrote:

>> src/java.base/share/classes/java/lang/IdentityException.java line 52:
>> 
>>> 50:      *
>>> 51:      * @apiNote
>>> 52:      * This constructor does not verify that the given {@code clazz} is 
>>> a value class.
>> 
>> URISyntaxException and InvalidPathException are examples of exceptions with 
>> specialized constructors (not one of the usual 4) that throw IAE when 
>> invoked with a bad parameter. I don't know if this was looked at, and 
>> rejected, at some point.
>
> I think it's reasonable to throw `IllegalArgumentException`, when `clazz` is 
> not null and is an identity class. I had hesitated doing that for the same 
> reason as you note - I don't have prior knowledge of these discussions.
> 
> I'll update this PR to throw the IAE, run existing tests and then wait for a 
> few days to see if anyone says we should not throw the IAE.

I think Roger maybe added this constructor out of convenience. I checked some 
VM code and they seem to be never using this constructor; they have various 
ways of constructing messages, often incorporating the action that requires 
identity. Maybe we can consider removing this constructor too.

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

PR Review Comment: 
https://git.openjdk.org/valhalla/pull/2562#discussion_r3436765368

Reply via email to