On Mon, 25 Aug 2025 14:54:14 GMT, Chen Liang <li...@openjdk.org> 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`.
>
> Chen Liang has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   A case for malformed return type

test/jdk/java/lang/invoke/MethodTypeTest.java line 233:

> 231:                 "(java/lang/Object)V",
> 232:                 "()java/lang/Object",
> 233:         };

And maybe also add a test case for an array type with too many dimensions in 
the return type:
Suggestion:

                "()java/lang/Object",
                "()" + "[".repeat(256) + "Ljava/lang/Object;",
        };

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

PR Review Comment: https://git.openjdk.org/jdk/pull/26909#discussion_r2298665463

Reply via email to