Fixes for 068-classloader

Check access to super class during linkage.
Don't allow findLoadedClasses to return erroneous classes.
068-classloader still needs a fix to validate method signatues before it will
run successfully.

Change-Id: I9c3cfcfc1357c94300fddad7d16de3cd670e2f80
diff --git a/src/java_lang_VMClassLoader.cc b/src/java_lang_VMClassLoader.cc
index 28421b4..9d2e2a8 100644
--- a/src/java_lang_VMClassLoader.cc
+++ b/src/java_lang_VMClassLoader.cc
@@ -34,7 +34,13 @@
 
   std::string descriptor(DotToDescriptor(name.c_str()));
   Class* c = Runtime::Current()->GetClassLinker()->LookupClass(descriptor.c_str(), loader);
-  return AddLocalReference<jclass>(env, c);
+  if (c != NULL && c->IsResolved()) {
+    return AddLocalReference<jclass>(env, c);
+  } else {
+    // Class wasn't resolved so it may be erroneous or not yet ready, force the caller to go into
+    // the regular loadClass code.
+    return NULL;
+  }
 }
 
 jint VMClassLoader_getBootClassPathSize(JNIEnv* env, jclass) {