mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-28 07:14:30 +02:00
8254309: appcds GCDuringDump.java failed - class must exist
Reviewed-by: ccheung, iklam
This commit is contained in:
parent
36c150b199
commit
9d5c9cc78b
8 changed files with 149 additions and 14 deletions
|
@ -37,6 +37,7 @@
|
|||
#include "interpreter/linkResolver.hpp"
|
||||
#include "logging/log.hpp"
|
||||
#include "logging/logTag.hpp"
|
||||
#include "memory/archiveUtils.hpp"
|
||||
#include "memory/metaspaceShared.hpp"
|
||||
#include "memory/resourceArea.hpp"
|
||||
#include "oops/constantPool.hpp"
|
||||
|
@ -572,6 +573,7 @@ Klass* ClassListParser::load_current_class(TRAPS) {
|
|||
klass = java_lang_Class::as_Klass(obj);
|
||||
} else { // load classes in bootclasspath/a
|
||||
if (HAS_PENDING_EXCEPTION) {
|
||||
ArchiveUtils::check_for_oom(PENDING_EXCEPTION); // exit on OOM
|
||||
CLEAR_PENDING_EXCEPTION;
|
||||
}
|
||||
|
||||
|
@ -582,6 +584,8 @@ Klass* ClassListParser::load_current_class(TRAPS) {
|
|||
} else {
|
||||
if (!HAS_PENDING_EXCEPTION) {
|
||||
THROW_NULL(vmSymbols::java_lang_ClassNotFoundException());
|
||||
} else {
|
||||
ArchiveUtils::check_for_oom(PENDING_EXCEPTION); // exit on OOM
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -590,6 +594,9 @@ Klass* ClassListParser::load_current_class(TRAPS) {
|
|||
// If "source:" tag is specified, all super class and super interfaces must be specified in the
|
||||
// class list file.
|
||||
klass = load_class_from_source(class_name_symbol, CHECK_NULL);
|
||||
if (HAS_PENDING_EXCEPTION) {
|
||||
ArchiveUtils::check_for_oom(PENDING_EXCEPTION); // exit on OOM
|
||||
}
|
||||
}
|
||||
|
||||
if (klass != NULL && klass->is_instance_klass() && is_id_specified()) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue