< prev index next >
src/hotspot/share/oops/constantPool.cpp
Print this page
@@ -767,14 +767,18 @@
}
void ConstantPool::throw_resolution_error(const constantPoolHandle& this_cp, int which, TRAPS) {
Symbol* message = NULL;
Symbol* error = SystemDictionary::find_resolution_error(this_cp, which, &message);
- assert(error != NULL && message != NULL, "checking");
+ assert(error != NULL, "checking");
CLEAR_PENDING_EXCEPTION;
+ if (message != NULL) {
ResourceMark rm;
THROW_MSG(error, message->as_C_string());
+ } else {
+ THROW(error);
+ }
}
// If resolution for Class, Dynamic constant, MethodHandle or MethodType fails, save the
// exception in the resolution error table, so that the same exception is thrown again.
void ConstantPool::save_and_throw_exception(const constantPoolHandle& this_cp, int which,
< prev index next >