RFR: 8356548: Use ClassFile API instead of ASM to transform classes in tests [v7]

Chen Liang liach at openjdk.org
Tue Oct 14 23:12:34 UTC 2025


> One of the goals of ClassFile API is to avoid updating the copy of ASM in the JDK (now moved to the test library) to support future class file formats.
> 
> However, some tests in hotspot turn out to parse latest class files, usually produced by the javac in the JDK under test, to transform them to inject desired bytecode patterns. If we keep these tests, we must keep maintaining the ASM library to accept all current class files, which will be costly with the upcoming project Valhalla.
> 
> To avoid maintaining ASM down the road, we can either:
> 1. Migrate the transformation to ClassFile API
> 2. Set source and release version in javac flags to produce stable bytecode
> 
> I recommend migrating to ClassFile API; javac has a deprecation policy, that in the future, old source and target versions will no longer be supported, and we would still need another port at that time.

Chen Liang has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains 16 additional commits since the last revision:

 - Merge branch 'master' of https://github.com/openjdk/jdk into fix/asm-test-upgrade
 - Ioi review
 - Merge branch 'master' of https://github.com/openjdk/jdk into fix/asm-test-upgrade
 - Merge branch 'master' of https://github.com/openjdk/jdk into fix/asm-test-upgrade
 - Merge branch 'master' of https://github.com/openjdk/jdk into fix/asm-test-upgrade
 - Merge branch 'master' of https://github.com/openjdk/jdk into fix/asm-test-upgrade
 - Merge branch 'fix/asm-test-upgrade' of github.com:liachmodded/jdk into fix/asm-test-upgrade
 - Update test/hotspot/jtreg/compiler/calls/common/InvokeDynamicPatcher.java
   
   Co-authored-by: Andrew Haley <aph-open at littlepinkcloud.com>
 - Variable name improvements
 - Merge branch 'master' of https://github.com/openjdk/jdk into fix/asm-test-upgrade
 - ... and 6 more: https://git.openjdk.org/jdk/compare/336f1cad...25972f2d

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/25124/files
  - new: https://git.openjdk.org/jdk/pull/25124/files/a659f538..25972f2d

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=25124&range=06
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=25124&range=05-06

  Stats: 244224 lines in 3760 files changed: 182111 ins; 40283 del; 21830 mod
  Patch: https://git.openjdk.org/jdk/pull/25124.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/25124/head:pull/25124

PR: https://git.openjdk.org/jdk/pull/25124


More information about the serviceability-dev mailing list