< prev index next >
src/share/vm/classfile/systemDictionary.hpp
Print this page
rev 11945 : 8023697: failed class resolution reports different class name in detail message for the first and subsequent times
Summary: Cache detail message when we cache exception for constant pool resolution.
Reviewed-by: acorn, twisti, jrose
rev 11952 : Merge jdk8u272-b02
*** 239,249 ****
static Klass* resolve_or_fail(Symbol* class_name, Handle class_loader, Handle protection_domain, bool throw_error, TRAPS);
// Convenient call for null loader and protection domain.
static Klass* resolve_or_fail(Symbol* class_name, bool throw_error, TRAPS);
protected:
// handle error translation for resolve_or_null results
! static Klass* handle_resolution_exception(Symbol* class_name, Handle class_loader, Handle protection_domain, bool throw_error, KlassHandle klass_h, TRAPS);
public:
// Returns a class with a given class name and class loader.
// Loads the class if needed. If not found NULL is returned.
--- 239,249 ----
static Klass* resolve_or_fail(Symbol* class_name, Handle class_loader, Handle protection_domain, bool throw_error, TRAPS);
// Convenient call for null loader and protection domain.
static Klass* resolve_or_fail(Symbol* class_name, bool throw_error, TRAPS);
protected:
// handle error translation for resolve_or_null results
! static Klass* handle_resolution_exception(Symbol* class_name, bool throw_error, KlassHandle klass_h, TRAPS);
public:
// Returns a class with a given class name and class loader.
// Loads the class if needed. If not found NULL is returned.
*** 547,559 ****
InstanceKlass::cast((loader_data->class_loader())->klass())->name()->as_C_string() );
}
// Record the error when the first attempt to resolve a reference from a constant
// pool entry to a class fails.
! static void add_resolution_error(constantPoolHandle pool, int which, Symbol* error);
static void delete_resolution_error(ConstantPool* pool);
! static Symbol* find_resolution_error(constantPoolHandle pool, int which);
protected:
enum Constants {
_loader_constraint_size = 107, // number of entries in constraint table
--- 547,561 ----
InstanceKlass::cast((loader_data->class_loader())->klass())->name()->as_C_string() );
}
// Record the error when the first attempt to resolve a reference from a constant
// pool entry to a class fails.
! static void add_resolution_error(constantPoolHandle pool, int which, Symbol* error,
! Symbol* message);
static void delete_resolution_error(ConstantPool* pool);
! static Symbol* find_resolution_error(constantPoolHandle pool, int which,
! Symbol** message);
protected:
enum Constants {
_loader_constraint_size = 107, // number of entries in constraint table
< prev index next >