< 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 >