comparison src/share/vm/oops/methodOop.cpp @ 104:541929da62d2

6624474: Server compiler generates unexpected LinkageError Summary: Fix load_signature_classes to tolerate LinkageErrors Reviewed-by: kvn, never
author rasbold
date Thu, 03 Apr 2008 13:33:13 -0700
parents d8b3ef7ee3e5
children ba764ed4b6f2
comparison
equal deleted inserted replaced
103:38a50dd839cf 104:541929da62d2
886 if (ss.is_object()) { 886 if (ss.is_object()) {
887 symbolOop sym = ss.as_symbol(CHECK_(false)); 887 symbolOop sym = ss.as_symbol(CHECK_(false));
888 symbolHandle name (THREAD, sym); 888 symbolHandle name (THREAD, sym);
889 klassOop klass = SystemDictionary::resolve_or_null(name, class_loader, 889 klassOop klass = SystemDictionary::resolve_or_null(name, class_loader,
890 protection_domain, THREAD); 890 protection_domain, THREAD);
891 // We are loading classes eagerly. If a ClassNotFoundException was generated, 891 // We are loading classes eagerly. If a ClassNotFoundException or
892 // be sure to ignore it. 892 // a LinkageError was generated, be sure to ignore it.
893 if (HAS_PENDING_EXCEPTION) { 893 if (HAS_PENDING_EXCEPTION) {
894 if (PENDING_EXCEPTION->is_a(SystemDictionary::classNotFoundException_klass())) { 894 if (PENDING_EXCEPTION->is_a(SystemDictionary::classNotFoundException_klass()) ||
895 PENDING_EXCEPTION->is_a(SystemDictionary::linkageError_klass())) {
895 CLEAR_PENDING_EXCEPTION; 896 CLEAR_PENDING_EXCEPTION;
896 } else { 897 } else {
897 return false; 898 return false;
898 } 899 }
899 } 900 }