6976636: JVM/TI test ex03t001 fails assertion

Relax assert in the post_class_unload for the CMS case

Reviewed-by: dcubed, dsamersoff
This commit is contained in:
Serguei Spitsyn 2014-03-17 19:29:29 -07:00 committed by Serguei Spitsyn
parent da4aab3c1d
commit 6c36e9d3fd

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -993,7 +993,9 @@ void JvmtiExport::post_class_unload(Klass* klass) {
// 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;