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