RFR: JDK-8315575: Retransform of record class with record component annotation fails with CFE [v5]
Alex Menkov
amenkov at openjdk.org
Tue Mar 19 21:57:38 UTC 2024
> RecordComponent class has _attributes_count field.
> The only user of the field is JvmtiClassFileReconstituter. Incorrect value of the field causes producing incorrect data for Record attribute.
> Parsing Record attribute ClassFileParser skips unknown attributes and may skip RuntimeInvisibleAnnotations/RuntimeInvisibleTypeAnnotations.
> Also annotations can be changed (added/removed) by class redefinition.
> The fix removes attributes_count from RecordComponent; JvmtiClassFileReconstituter calculates correct attributes_count generating class bytes.
>
> Testing:
> - tier1,tier2,hs-tier5-svc;
> - redefineClasses/retransformClasses tests:
> - test/jdk/java/lang/instrument
> - test/hotspot/jtreg/serviceability/jvmti/RedefineClasses
> - test/hotspot/jtreg/vmTestbase/nsk/jvmti/RedefineClasses
> - test/hotspot/jtreg/vmTestbase/nsk/jvmti/RetransformClasses
Alex Menkov has updated the pull request incrementally with one additional commit since the last revision:
Updated the fix and the test for multiple annotations
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/18161/files
- new: https://git.openjdk.org/jdk/pull/18161/files/671c71e1..9a53d4ca
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=18161&range=04
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=18161&range=03-04
Stats: 82 lines in 2 files changed: 58 ins; 11 del; 13 mod
Patch: https://git.openjdk.org/jdk/pull/18161.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/18161/head:pull/18161
PR: https://git.openjdk.org/jdk/pull/18161
More information about the serviceability-dev
mailing list