Mercurial > hg > truffle
changeset 14241:715bc50198c1
8031376: TraceClassLoading expects there to be a (Java) caller when you load a class with the bootstrap class loader
Reviewed-by: sla, dholmes
Contributed-by: jeremymanson@google.com
author | sla |
---|---|
date | Wed, 08 Jan 2014 08:34:02 +0100 |
parents | ce86c36b8921 |
children | 6ffbf4c1c98c |
files | src/share/vm/classfile/classFileParser.cpp |
diffstat | 1 files changed, 6 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/share/vm/classfile/classFileParser.cpp Tue Jan 07 13:26:56 2014 -0500 +++ b/src/share/vm/classfile/classFileParser.cpp Wed Jan 08 08:34:02 2014 +0100 @@ -4098,8 +4098,12 @@ tty->print("[Loaded %s from %s]\n", this_klass->external_name(), cfs->source()); } else if (class_loader.is_null()) { - if (THREAD->is_Java_thread()) { - Klass* caller = ((JavaThread*)THREAD)->security_get_caller_class(1); + Klass* caller = + THREAD->is_Java_thread() + ? ((JavaThread*)THREAD)->security_get_caller_class(1) + : NULL; + // caller can be NULL, for example, during a JVMTI VM_Init hook + if (caller != NULL) { tty->print("[Loaded %s by instance of %s]\n", this_klass->external_name(), InstanceKlass::cast(caller)->external_name());