1.1 --- a/src/share/vm/classfile/loaderConstraints.cpp Thu Jan 27 16:11:27 2011 -0800 1.2 +++ b/src/share/vm/classfile/loaderConstraints.cpp Mon Jan 31 17:48:21 2011 -0800 1.3 @@ -322,8 +322,14 @@ 1.4 klassOop LoaderConstraintTable::find_constrained_klass(Symbol* name, 1.5 Handle loader) { 1.6 LoaderConstraintEntry *p = *(find_loader_constraint(name, loader)); 1.7 - if (p != NULL && p->klass() != NULL) 1.8 + if (p != NULL && p->klass() != NULL) { 1.9 + if (Klass::cast(p->klass())->oop_is_instance() && !instanceKlass::cast(p->klass())->is_loaded()) { 1.10 + // Only return fully loaded classes. Classes found through the 1.11 + // constraints might still be in the process of loading. 1.12 + return NULL; 1.13 + } 1.14 return p->klass(); 1.15 + } 1.16 1.17 // No constraints, or else no klass loaded yet. 1.18 return NULL;