RFR: 8359707: Add classfile modification code to RedefineClassHelper [v6]
David Holmes
dholmes at openjdk.org
Fri Jun 27 04:23:39 UTC 2025
On Thu, 26 Jun 2025 18:40:59 GMT, Coleen Phillimore <coleenp at openjdk.org> wrote:
>> It can be also written as:
>> `return ClassFile.of().transform(classModel, ClassDesc.of(newClassName), ClassTransform.ACCEPT_ALL`
>>
>> But be aware this code does not change the class name use anywhere in the code, descriptors, handles, annotation, etc..., just the class name itself.
>>
>> Full class remapping was a job of https://docs.oracle.com/en/java/javase/23/docs/api/java.base/java/lang/classfile/components/ClassRemapper.html which unfortunately didn't make it from 23 preview to 24 :(
>
> Yes, I wanted to use the ClassRemapper but all the tests that used RedefineClassHelper would have had to add @modules. We can change it later when ClassRemapper becomes available without adding modules.
> the lambda just copies everything over as-is.
..
> But be aware this code does not change the class name use anywhere in the code, descriptors, handles, annotation, etc..., just the class name itself.
@coleenp don't we need to class name to be changed everywhere it appears in the classfile? Or do we know these classes are trivial enough that there is only a single occurrence of the name (and everything else is symbolic via the constant pool) ?
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/25857#discussion_r2170732353
More information about the serviceability-dev
mailing list