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