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
--- 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);