diff src/os/solaris/launcher/java_md.c @ 388:f008d3631bd1

6755845: JVM_FindClassFromBoot triggers assertions Summary: Fixes assertions caused by one jvm_entry calling another, solved by refactoring code and modified gamma test. Reviewed-by: dholmes, xlu
author ksrini
date Wed, 08 Oct 2008 08:10:51 -0700
parents a61af66fc99e
children ad8c8ca4ab0f
line wrap: on
line diff
--- a/src/os/solaris/launcher/java_md.c	Mon Oct 06 11:39:34 2008 -0700
+++ b/src/os/solaris/launcher/java_md.c	Wed Oct 08 08:10:51 2008 -0700
@@ -1826,3 +1826,24 @@
 {
     return(borrowed_unsetenv(name));
 }
+
+/*
+ * The implementation for finding classes from the bootstrap
+ * class loader, refer to java.h
+ */
+static FindClassFromBootLoader_t *findBootClass = NULL;
+
+jclass
+FindBootStrapClass(JNIEnv *env, const char* classname)
+{
+   if (findBootClass == NULL) {
+       findBootClass = (FindClassFromBootLoader_t *)dlsym(RTLD_DEFAULT,
+          "JVM_FindClassFromBootLoader");
+       if (findBootClass == NULL) {
+           fprintf(stderr, "Error: could not load method JVM_FindClassFromBootLoader");
+           return NULL;
+       }
+   }
+   return findBootClass(env, classname, JNI_FALSE);
+}
+