From 047329ce0ad5556783056e2e8ccc554748403abf Mon Sep 17 00:00:00 2001 From: "akhil.arora%sun.com" Date: Fri, 15 Oct 1999 01:47:04 +0000 Subject: [PATCH] 16426 r=akhil.arora@sun.com fixed by Denis Sharypov The class java.lang.RuntimeException was not being pinned git-svn-id: svn://10.0.0.236/trunk@50760 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/java/dom/jni/javaDOMGlobals.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/mozilla/java/dom/jni/javaDOMGlobals.cpp b/mozilla/java/dom/jni/javaDOMGlobals.cpp index d1f93849ae5..3b4d40026bf 100644 --- a/mozilla/java/dom/jni/javaDOMGlobals.cpp +++ b/mozilla/java/dom/jni/javaDOMGlobals.cpp @@ -228,6 +228,8 @@ void JavaDOMGlobals::Initialize(JNIEnv *env) runtimeExceptionClass = env->FindClass("java/lang/RuntimeException"); if (!runtimeExceptionClass) return; + runtimeExceptionClass = (jclass) env->NewGlobalRef(runtimeExceptionClass); + if (!runtimeExceptionClass) return; runtimeExceptionInitMID = env->GetMethodID(runtimeExceptionClass, "", "(Ljava/lang/String;)V"); @@ -389,6 +391,15 @@ void JavaDOMGlobals::Destroy(JNIEnv *env) } domExceptionClass = NULL; + env->DeleteGlobalRef(runtimeExceptionClass); + if (env->ExceptionOccurred()) { + PR_LOG(log, PR_LOG_ERROR, + ("JavaDOMGlobals::Destroy: failed to delete DOM Exception global ref %x\n", + runtimeExceptionClass)); + return; + } + runtimeExceptionClass = NULL; + TakeOutGarbage(); PR_DestroyLock(garbageLock); } @@ -552,7 +563,7 @@ void JavaDOMGlobals::ThrowException(JNIEnv *env, jstring jmessage = env->NewStringUTF(msg); - jthrowable newException = + newException = (jthrowable)env->NewObject(runtimeExceptionClass, runtimeExceptionInitMID, jmessage);