RFR: 8359707: Add classfile modification code to RedefineClassHelper [v2]
Coleen Phillimore
coleenp at openjdk.org
Tue Jun 24 12:10:32 UTC 2025
On Mon, 23 Jun 2025 21:18:09 GMT, Alex Menkov <amenkov at openjdk.org> wrote:
>> Coleen Phillimore has updated the pull request incrementally with one additional commit since the last revision:
>>
>> Add a byte buffer version and rename parameters.
>
> test/lib/RedefineClassHelper.java line 87:
>
>> 85: }
>> 86: return 0;
>> 87: }
>
> I understand, that this is copy of the old code, but this method does not look good.
> - it would be better to return -1 if the string not found (0 is valid offset)
> - calculation of the buf's upper bound is incorrect when offset > 0
> I'd suggest to update it to something like (not tested, also need to update callers to compare with -1)
>
>
> private static int getStringIndex(String needle, byte[] buf, int offset) {
> byte[] needleArray = needle.getBytes(StandardCharsets.US_ASCII);
> for (int i = offset; i < buf.length - needleArray.length; i++)
> if (Arrays.equals(buf, offset, offset + needleArray.length,
> needleArray, 0, needleArray.length)) {
> return offset;
> }
> }
> return -1;
> }
I did copy this code. I was hoping instead of class byte modifications that someone would suggest a Classfile API way to modify the class file bytes. @liach ? That way the class names don't have to be the same length. Above seems better code but I have to debug it now.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/25857#discussion_r2163791674
More information about the serviceability-dev
mailing list