On Thu, 6 Aug 2026 06:00:59 GMT, David Holmes <[email protected]> wrote:
>> Coleen Phillimore has updated the pull request incrementally with one
>> additional commit since the last revision:
>>
>> Remove spare file.
>
> src/hotspot/share/classfile/javaStackTraceClasses.cpp line 378:
>
>> 376: static inline Symbol* method_id_to_name_symbol(InstanceKlass* holder,
>> int method_id) {
>> 377: Method* method = holder->method_with_orig_idnum(method_id);
>> 378: return (method == nullptr) ? SymbolTable::new_symbol("<redefined
>> deleted>") : method->name();
>
> I don't like creating symbols from arbitrary message strings like this. A
> Symbol for a method name should be guaranteed to meet all the naming rules
> for Java methods. This can make its way to Java code purporting to be a
> method name when in fact it is not. Perhaps this is in part why we go to all
> the trouble of keeping the old method name around. ??
It is not why we kept the method Symbol around, that was for a special case and
cost both footprint, gc time and performance. If the format of the name might
be a problem, I could use redefineDeleted or something like that. I don't know
why `<redefined deleted>` would be since the method name could also be
`<init>`. I could also rename and use this symbol but it doesn't really
describe why the method name can't be found.
/* used by ClassFormatError when class name is not known yet */
\
template(unknown_class_name, "<Unknown>")
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/32202#discussion_r3728564543