On Thu, 12 Feb 2026 13:47:49 GMT, Jean-Philippe Bempel <[email protected]> 
wrote:

>> …retransformed
>> 
>> Fix a retransform error when retransforming a record with type annotation. 
>> processing the record type annotation was done by calling the wrong method 
>> and using the one to process regular annotation. Regular annotations have 
>> not the same structure and decoding was therefore incorrect. The decoding 
>> methods detect a problem but this error was not propagated correctly outside 
>> of VM_RedfineClass::load_new_class_versions method, swallowing the error and 
>> leaving the retransformed class in bad state.
>> 
>> Here we have fixed the call to the right method for decoding the type 
>> annotations but also propagated the error when rewriting the constant pool 
>> as an JVMTI_ERROR_INTERNAL
>
> Jean-Philippe Bempel has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   fix whitespaces

test/jdk/java/lang/instrument/RetransformRecordTypeAnn/TestRetransformRecord.java
 line 36:

> 34:  * @compile ../NamedBuffer.java
> 35:  * @run driver RunAsmTools altered/MyRecord.jcod altered
> 36:  * @compile MyRecord.java

It is always risky to assume stability in javac output, even with `--release` 
flag - javac can always have translation strategy improvements that bring in 
potentially unwanted changes to the resulting class files.

I recommend just having two versions of `MyRecord.jcod` so they are both 
stable, and it's easier for readers to notice their difference.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/29445#discussion_r2861677191

Reply via email to