RFR(xxs): 8229708 JFR backport code does not initialize

Andrey Petushkov andrey at azul.com
Wed Aug 14 14:27:15 UTC 2019

Dear All,

During integration of initial commit for JFR backport one line of code was occasionally forgotten. So here is the change to bring it back.
The diff is the following:

diff -r b985cbb00e68 src/share/vm/classfile/classFileParser.cpp
--- a/src/share/vm/classfile/classFileParser.cpp	Mon Aug 12 18:30:40 2019 +0300
+++ b/src/share/vm/classfile/classFileParser.cpp	Wed Aug 14 16:15:34 2019 +0300
@@ -4262,6 +4262,8 @@
     preserve_this_klass = this_klass();

+  JFR_ONLY(INIT_ID(preserve_this_klass);)
   // Create new handle outside HandleMark (might be needed for
   // Extended Class Redefinition)
   instanceKlassHandle this_klass (THREAD, preserve_this_klass);

as you can easily see this code is part of the required change [1]
while not part of commit [2]
Naturally without this code the loaded classes are missing their JFR ids and none of the JFR magic happens
(at first no class transform so Event classes are missing their eventHandler field, added by transformer,
the cause of the error reported)

Please approve the fix


[1] http://cr.openjdk.java.net/~apetushkov/jfr8/hotspot/src/share/vm/classfile/classFileParser.cpp.udiff.html
[2] http://hg.openjdk.java.net/jdk8u/jdk8u-jfr-incubator/hotspot/rev/b985cbb00e68#l74.2

More information about the jdk8u-dev mailing list