diff --git a/jdk/src/windows/native/sun/windows/awt_Choice.cpp b/jdk/src/windows/native/sun/windows/awt_Choice.cpp index d4879e4e544..6a597475148 100644 --- a/jdk/src/windows/native/sun/windows/awt_Choice.cpp +++ b/jdk/src/windows/native/sun/windows/awt_Choice.cpp @@ -157,6 +157,7 @@ AwtChoice* AwtChoice::Create(jobject peer, jobject parent) { "preferredSize", "()Ljava/awt/Dimension;").l; DASSERT(!safe_ExceptionOccurred(env)); + if (env->ExceptionCheck()) goto done; if (dimension != NULL && width == 0) { width = env->GetIntField(dimension, AwtDimension::widthID); @@ -337,9 +338,8 @@ jobject AwtChoice::PreferredItemSize(JNIEnv *env) "preferredSize", "()Ljava/awt/Dimension;").l; DASSERT(!safe_ExceptionOccurred(env)); - if (dimension == NULL) { - return NULL; - } + CHECK_NULL_RETURN(dimension, NULL); + /* This size is window size of choice and it's too big for each * drop down item height. */ @@ -605,7 +605,8 @@ void AwtChoice::_AddItems(void *param) for (i = 0; i < itemCount; i++) { jstring item = (jstring)env->GetObjectArrayElement(items, i); - JNI_CHECK_NULL_GOTO(item, "null item", next_elem); + if (env->ExceptionCheck()) goto done; + if (item == NULL) goto next_elem; c->SendMessage(CB_INSERTSTRING, index + i, JavaStringBuffer(env, item)); env->DeleteLocalRef(item); next_elem: