263 assert(!thread->has_pending_exception(), "already has exception"); |
263 assert(!thread->has_pending_exception(), "already has exception"); |
264 |
264 |
265 Handle h_exception; |
265 Handle h_exception; |
266 |
266 |
267 // Resolve exception klass |
267 // Resolve exception klass |
268 Klass* ik = SystemDictionary::resolve_or_fail(name, h_loader, h_protection_domain, true, thread); |
268 InstanceKlass* klass = InstanceKlass::cast(SystemDictionary::resolve_or_fail(name, h_loader, h_protection_domain, true, thread)); |
269 instanceKlassHandle klass(thread, ik); |
|
270 |
269 |
271 if (!thread->has_pending_exception()) { |
270 if (!thread->has_pending_exception()) { |
272 assert(klass.not_null(), "klass must exist"); |
271 assert(klass != NULL, "klass must exist"); |
273 // We are about to create an instance - so make sure that klass is initialized |
272 // We are about to create an instance - so make sure that klass is initialized |
274 klass->initialize(thread); |
273 klass->initialize(thread); |
275 if (!thread->has_pending_exception()) { |
274 if (!thread->has_pending_exception()) { |
276 // Allocate new exception |
275 // Allocate new exception |
277 h_exception = klass->allocate_instance_handle(thread); |
276 h_exception = klass->allocate_instance_handle(thread); |