--- old/src/hotspot/share/classfile/classLoaderData.hpp 2018-06-13 19:36:24.648836269 -0400 +++ new/src/hotspot/share/classfile/classLoaderData.hpp 2018-06-13 19:36:23.047726584 -0400 @@ -260,7 +260,7 @@ // JFR support Klass* _class_loader_klass; - Symbol* _class_loader_name; + Symbol* _class_loader_name_id; JFR_ONLY(DEFINE_TRACE_ID_FIELD;) void set_next(ClassLoaderData* next) { _next = next; } @@ -362,8 +362,6 @@ void initialize_holder(Handle holder); - inline unsigned int identity_hash() const { return (unsigned int)(((intptr_t)this) >> 3); } - void oops_do(OopClosure* f, bool must_claim, bool clear_modified_oops = false); void classes_do(KlassClosure* klass_closure); @@ -377,7 +375,6 @@ void print_value() { print_value_on(tty); } void print_value_on(outputStream* out) const; void verify(); - const char* loader_name() const; OopHandle add_handle(Handle h); void remove_handle(OopHandle h); @@ -404,11 +401,10 @@ // Also works if unloading. Klass* class_loader_klass() const { return _class_loader_klass; } - // Returns Name of associated class loader. - // Returns NULL if associated class loader is or if no name has been set for - // this loader. - // Also works if unloading. - Symbol* class_loader_name() const { return _class_loader_name; } + // Both methods return the class loader's nameAndId in char* or Symbol* format. + // Both methods work during unloading. + const char* loader_name() const; + Symbol* class_loader_name() const { return _class_loader_name_id; } JFR_ONLY(DEFINE_TRACE_ID_METHODS;) };