comparison src/share/vm/oops/arrayKlass.cpp @ 20512:7d68a5b1069d

8058927: ATG throws ClassNotFoundException Summary: ClassLoader for array klass set to null and not the class loader of the component type. Reviewed-by: dcubed, ctornqvi
author coleenp
date Fri, 26 Sep 2014 12:50:30 -0400
parents 47e3110c47e8
children 73d61cd3f8e9
comparison
equal deleted inserted replaced
20506:2d6a3328ec99 20512:7d68a5b1069d
91 // since a GC can happen. At this point all instance variables of the ArrayKlass must be setup. 91 // since a GC can happen. At this point all instance variables of the ArrayKlass must be setup.
92 void ArrayKlass::complete_create_array_klass(ArrayKlass* k, KlassHandle super_klass, TRAPS) { 92 void ArrayKlass::complete_create_array_klass(ArrayKlass* k, KlassHandle super_klass, TRAPS) {
93 ResourceMark rm(THREAD); 93 ResourceMark rm(THREAD);
94 k->initialize_supers(super_klass(), CHECK); 94 k->initialize_supers(super_klass(), CHECK);
95 k->vtable()->initialize_vtable(false, CHECK); 95 k->vtable()->initialize_vtable(false, CHECK);
96 java_lang_Class::create_mirror(k, Handle(NULL), Handle(NULL), CHECK); 96 java_lang_Class::create_mirror(k, Handle(THREAD, k->class_loader()), Handle(NULL), CHECK);
97 } 97 }
98 98
99 GrowableArray<Klass*>* ArrayKlass::compute_secondary_supers(int num_extra_slots) { 99 GrowableArray<Klass*>* ArrayKlass::compute_secondary_supers(int num_extra_slots) {
100 // interfaces = { cloneable_klass, serializable_klass }; 100 // interfaces = { cloneable_klass, serializable_klass };
101 assert(num_extra_slots == 0, "sanity of primitive array type"); 101 assert(num_extra_slots == 0, "sanity of primitive array type");