src/share/vm/prims/jvmtiExport.cpp
Print this page
@@ -991,11 +991,13 @@
jclass jk = (jclass)JNIHandles::make_local(real_thread, kh()->java_mirror());
// Before we call the JVMTI agent, we have to set the state in the
// thread for which we are proxying.
JavaThreadState prev_state = real_thread->thread_state();
- assert(prev_state == _thread_blocked, "JavaThread should be at safepoint");
+ assert(((Thread *)real_thread)->is_ConcurrentGC_thread() ||
+ (real_thread->is_Java_thread() && prev_state == _thread_blocked),
+ "should be ConcurrentGCThread or JavaThread at safepoint");
real_thread->set_thread_state(_thread_in_native);
jvmtiExtensionEvent callback = env->ext_callbacks()->ClassUnload;
if (callback != NULL) {
(*callback)(env->jvmti_external(), jni_env, jt, jk);