diff -r 7aa1b3d6ff8f -r 68134337dbf8 src/hotspot/share/jfr/recorder/checkpoint/types/traceid/jfrTraceId.inline.hpp --- a/src/hotspot/share/jfr/recorder/checkpoint/types/traceid/jfrTraceId.inline.hpp Sun Aug 25 13:27:54 2019 +0200 +++ b/src/hotspot/share/jfr/recorder/checkpoint/types/traceid/jfrTraceId.inline.hpp Sun Aug 25 15:13:16 2019 +0200 @@ -28,8 +28,9 @@ #include "classfile/classLoaderData.hpp" #include "classfile/moduleEntry.hpp" #include "classfile/packageEntry.hpp" +#include "jfr/recorder/checkpoint/types/traceid/jfrTraceId.hpp" +#include "jfr/recorder/checkpoint/types/traceid/jfrTraceIdEpoch.hpp" #include "jfr/recorder/checkpoint/types/traceid/jfrTraceIdMacros.hpp" -#include "jfr/recorder/checkpoint/types/traceid/jfrTraceId.hpp" #include "oops/arrayKlass.hpp" #include "oops/klass.hpp" #include "oops/instanceKlass.hpp" @@ -57,7 +58,11 @@ inline traceid JfrTraceId::use(const Klass* klass) { assert(klass != NULL, "invariant"); - return set_used_and_get(klass); + const traceid id = set_used_and_get(klass); + if (IS_NOT_SERIALIZED(klass)) { + JfrTraceIdEpoch::set_klass_tagged_in_epoch(); + } + return id; } inline traceid JfrTraceId::use(const Method* method) { @@ -71,6 +76,9 @@ SET_METHOD_FLAG_USED_THIS_EPOCH(method); SET_METHOD_AND_CLASS_USED_THIS_EPOCH(klass); assert(METHOD_AND_CLASS_USED_THIS_EPOCH(klass), "invariant"); + if (IS_NOT_SERIALIZED(klass)) { + JfrTraceIdEpoch::set_klass_tagged_in_epoch(); + } return (METHOD_ID(klass, method)); }