On Sat, 23 Aug 2025 01:46:14 GMT, Chen Liang <[email protected]> wrote:
> A previous cleanup #14642 accidentally omitted the fact that an
> `Array.newInstance` call in `BytecodeDescriptor::parseSig` is intended to
> propagate `IllegalArgumentException` to
> `MethodType::fromMethodDescriptorString`. This bug is discovered in a recent
> cleanup for `BytecodeDescriptor` in #24978.
>
> Instead of restoring the original `newInstance` call, this patch catches the
> `UnsupportedOperationException` thrown by `Class::arrayType` to because the
> cause IAE thrown by `newInstance` has no message at all. The existing
> reporting system in `BytecodeDescriptor::parseMethod` includes the whole
> malformed descriptor string in the error message, which can be triggered by
> returning `null` in `parseSig`.
Looks good
test/jdk/java/lang/invoke/MethodTypeTest.java line 232:
> 230: "(" + "[".repeat(256) + "J)I",
> 231: "(java/lang/Object)V",
> 232: };
Maybe add a case with a bad return type as well?
-------------
Marked as reviewed by jvernee (Reviewer).
PR Review: https://git.openjdk.org/jdk/pull/26909#pullrequestreview-3151195935
PR Review Comment: https://git.openjdk.org/jdk/pull/26909#discussion_r2297954343