If you create a java.lang.reflect.Method to a Method that is deleted during redefinition, the method.invoke gets InternalError exception, and not a NoSuchMethodError wrapped in InvocationTargetException. If you add the method back, you still get InternalError.
from reflection.cpp:
InstanceKlass* klass = InstanceKlass::cast(java_lang_Class::as_Klass(mirror));
Method* m = klass->method_with_idnum(slot);
if (m == NULL) {
THROW_MSG_0(vmSymbols::java_lang_InternalError(), "invoke");
}
from reflection.cpp:
InstanceKlass* klass = InstanceKlass::cast(java_lang_Class::as_Klass(mirror));
Method* m = klass->method_with_idnum(slot);
if (m == NULL) {
THROW_MSG_0(vmSymbols::java_lang_InternalError(), "invoke");
}
- relates to
-
JDK-8181171 Deleting method for RedefineClasses breaks ResolvedMethodName
-
- Resolved
-