Mercurial > hg > truffle
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 } |