8220341: Class redefinition fails with assert(!is_unloaded()) failed: unloaded method on the stack
authorthartmann
Tue, 12 Mar 2019 10:09:50 +0100
changeset 54067 94d1e2c8fe01
parent 54066 1dbe0c210134
child 54068 b067bd7edc26
8220341: Class redefinition fails with assert(!is_unloaded()) failed: unloaded method on the stack Summary: Skip unloaded methods in compile queue during marking. Reviewed-by: kvn, neliasso, eosterlund, coleenp
src/hotspot/share/compiler/compileTask.cpp
--- a/src/hotspot/share/compiler/compileTask.cpp	Thu Mar 07 02:39:06 2019 +0000
+++ b/src/hotspot/share/compiler/compileTask.cpp	Tue Mar 12 10:09:50 2019 +0100
@@ -182,8 +182,10 @@
 }
 
 void CompileTask::mark_on_stack() {
+  if (is_unloaded()) {
+    return;
+  }
   // Mark these methods as something redefine classes cannot remove.
-  assert(!is_unloaded(), "unloaded method on the stack");
   _method->set_on_stack(true);
   if (_hot_method != NULL) {
     _hot_method->set_on_stack(true);