8042796: jvmtiRedefineClasses.cpp: guarantee(false) failed: OLD and/or OBSOLETE method(s) found

Relax the guaranty for deleted methods

Reviewed-by: dcubed, coleenp
This commit is contained in:
Serguei Spitsyn 2014-05-16 15:05:44 -07:00 committed by Serguei Spitsyn
parent ec3e742de1
commit 7f2b064e43
4 changed files with 12 additions and 5 deletions

View file

@ -2970,7 +2970,8 @@ void VM_RedefineClasses::check_methods_and_mark_as_obsolete(
assert(!old_method->has_vtable_index(),
"cannot delete methods with vtable entries");;
// Mark all deleted methods as old and obsolete
// Mark all deleted methods as old, obsolete and deleted
old_method->set_is_deleted();
old_method->set_is_old();
old_method->set_is_obsolete();
++obsolete_count;
@ -3576,7 +3577,7 @@ void VM_RedefineClasses::CheckClass::do_klass(Klass* k) {
no_old_methods = false;
}
// the constant pool cache should never contain old or obsolete methods
// the constant pool cache should never contain non-deleted old or obsolete methods
if (ik->constants() != NULL &&
ik->constants()->cache() != NULL &&
!ik->constants()->cache()->check_no_old_or_obsolete_entries()) {