eclipse-openj9 / openj9

Eclipse OpenJ9: A Java Virtual Machine for OpenJDK that's optimized for small footprint, fast start-up, and high throughput. Builds on Eclipse OMR (https://github.com/eclipse/omr) and combines with the Extensions for OpenJDK for OpenJ9 repo.
Other
3.29k stars 723 forks source link

Missing testcase for Instrumentation optimization #1822

Open DanHeidinga opened 6 years ago

DanHeidinga commented 6 years ago

OpenJ9 has an optimization to not recreate the classfile from the ROMClass if no transformers have been added. This is present in the Extensions repos[1] and has been contributed to OpenJDK starting in JDK10[2].

We need to add a test case that uses a simple agent with no transformers that calls retransformClasses and ensures that the tracepoints in the code that converts ROMClasses to Classfiles don't fire.

This will let us know if the optimization ever breaks.

[1] https://github.com/ibmruntimes/openj9-openjdk-jdk8/blob/openj9/jdk/src/share/classes/sun/instrument/InstrumentationImpl.java [2] http://hg.openjdk.java.net/jdk10/hs/rev/d85284ccd1bd

DanHeidinga commented 6 years ago

Missing test highlighted by work in https://github.com/eclipse/openj9/issues/1032