RFR: 8228604: StackMapFrames are missing from redefined class bytes of retransformed classes

Serguei Spitsyn sspitsyn at openjdk.org
Wed Feb 1 04:53:54 UTC 2023


On Tue, 24 Jan 2023 03:17:01 GMT, Chris Plummer <cjplummer at openjdk.org> wrote:

>> classFileParser drops stack map frames for JDK classes (when verification is not required).
>> As a result JvmtiClassFileReconstituter cannot restore the attribute for class redefinition.
>> Note that if the class is in CDS archive, the frames are restored from CDS, so this issue affects only JDK classes which are not in CDS.
>> This code is old (from "initial load") and I don't understand the reason it was implemented this way.
>> 
>> Testing: tier1-tier6
>
> test/hotspot/jtreg/serviceability/jvmti/RedefineClasses/MissedStackMapFrames/MissedStackMapFrames.java line 107:
> 
>> 105:             byte[] retransformBytes = retransformBytes(i);
>> 106:             checkStackMapFrames(cls + "(load)", loadBytes);
>> 107:             checkStackMapFrames(cls + "(retranform)", retransformBytes);
> 
> "retransform"

I'd also suggest a couple of name changes to increase readability:
  loadBytes => loadedBytes
  retransformBytes => retransformedBytes

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

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


More information about the serviceability-dev mailing list