hotspot/src/share/vm/classfile/loaderConstraints.cpp
changeset 8314 057b1c20fd7e
parent 8076 96d498ec7ae1
child 8921 14bfe81f2a9d
equal deleted inserted replaced
8076:96d498ec7ae1 8314:057b1c20fd7e
   320 }
   320 }
   321 
   321 
   322 klassOop LoaderConstraintTable::find_constrained_klass(Symbol* name,
   322 klassOop LoaderConstraintTable::find_constrained_klass(Symbol* name,
   323                                                        Handle loader) {
   323                                                        Handle loader) {
   324   LoaderConstraintEntry *p = *(find_loader_constraint(name, loader));
   324   LoaderConstraintEntry *p = *(find_loader_constraint(name, loader));
   325   if (p != NULL && p->klass() != NULL)
   325   if (p != NULL && p->klass() != NULL) {
       
   326     if (Klass::cast(p->klass())->oop_is_instance() && !instanceKlass::cast(p->klass())->is_loaded()) {
       
   327       // Only return fully loaded classes.  Classes found through the
       
   328       // constraints might still be in the process of loading.
       
   329       return NULL;
       
   330     }
   326     return p->klass();
   331     return p->klass();
       
   332   }
   327 
   333 
   328   // No constraints, or else no klass loaded yet.
   334   // No constraints, or else no klass loaded yet.
   329   return NULL;
   335   return NULL;
   330 }
   336 }
   331 
   337