8035739: [parfait] JNI exception pending and primitive type mismatch in jdk/src/windows/native/sun/windows/awt_List.cpp
authorpchelko
Thu, 10 Apr 2014 11:57:19 +0400
changeset 24174 ea4435b45c3e
parent 24173 176b551268a3
child 24175 3a8694713eab
8035739: [parfait] JNI exception pending and primitive type mismatch in jdk/src/windows/native/sun/windows/awt_List.cpp Reviewed-by: serb, azvegint
jdk/src/windows/native/sun/windows/awt_List.cpp
--- a/jdk/src/windows/native/sun/windows/awt_List.cpp	Thu Apr 10 11:56:01 2014 +0400
+++ b/jdk/src/windows/native/sun/windows/awt_List.cpp	Thu Apr 10 11:57:19 2014 +0400
@@ -614,7 +614,8 @@
             {
                 LPTSTR itemPtr = NULL;
                 jstring item = (jstring)env->GetObjectArrayElement(items, i);
-                JNI_CHECK_NULL_GOTO(item, "null item", next_item);
+                if (env->ExceptionCheck()) goto ret;
+                if (item == NULL) goto next_item;
                 itemPtr = (LPTSTR)JNU_GetStringPlatformChars(env, item, 0);
                 if (itemPtr == NULL)
                 {
@@ -1017,8 +1018,8 @@
     ses->list = env->NewGlobalRef(self);
     ses->index = index;
 
-    return (jboolean)AwtToolkit::GetInstance().SyncCall(
-        (void *(*)(void *))AwtList::_IsSelected, ses);
+    return JNI_IS_TRUE(AwtToolkit::GetInstance().SyncCall(
+                       (void *(*)(void *))AwtList::_IsSelected, ses));
     // global ref and ses are deleted in _IsSelected
 
     CATCH_BAD_ALLOC_RET(FALSE);