diff -r 57f4422b7bdb src/java.base/share/native/libnet/net_util.c --- a/src/java.base/share/native/libnet/net_util.c Mon Jun 22 15:47:44 2015 +0300 +++ b/src/java.base/share/native/libnet/net_util.c Mon Jul 13 12:08:35 2015 +0530 @@ -57,6 +57,9 @@ s = (*env)->NewStringUTF(env, "java.net.preferIPv4Stack"); CHECK_NULL_RETURN(s, JNI_VERSION_1_2); preferIPv4Stack = (*env)->CallStaticBooleanMethod(env, iCls, mid, s); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionClear(env); + } /* Since we have initialized and loaded the Socket library we will diff -r 57f4422b7bdb src/java.desktop/unix/native/common/awt/awt.h --- a/src/java.desktop/unix/native/common/awt/awt.h Mon Jun 22 15:47:44 2015 +0300 +++ b/src/java.desktop/unix/native/common/awt/awt.h Mon Jul 13 12:09:04 2015 +0530 @@ -82,7 +82,12 @@ } while (0) #define AWT_LOCK_IMPL() \ - (*env)->CallStaticVoidMethod(env, tkClass, awtLockMID) + do { \ + (*env)->CallStaticVoidMethod(env, tkClass, awtLockMID); \ + if ((*env)->ExceptionCheck(env)) { \ + (*env)->ExceptionClear(env); \ + } \ + } while(0) #define AWT_NOFLUSH_UNLOCK_IMPL() \ do { \ @@ -91,11 +96,10 @@ (*env)->ExceptionClear(env); \ } \ (*env)->CallStaticVoidMethod(env, tkClass, awtUnlockMID); \ + if ((*env)->ExceptionCheck(env)) { \ + (*env)->ExceptionClear(env); \ + } \ if (pendingException) { \ - if ((*env)->ExceptionCheck(env)) { \ - (*env)->ExceptionDescribe(env); \ - (*env)->ExceptionClear(env); \ - } \ (*env)->Throw(env, pendingException); \ } \ } while (0) diff -r 57f4422b7bdb src/java.desktop/unix/native/libawt/awt/awt_LoadLibrary.c --- a/src/java.desktop/unix/native/libawt/awt/awt_LoadLibrary.c Mon Jun 22 15:47:44 2015 +0300 +++ b/src/java.desktop/unix/native/libawt/awt/awt_LoadLibrary.c Mon Jul 13 12:09:20 2015 +0530 @@ -71,6 +71,9 @@ } isHeadless = (*env)->CallStaticBooleanMethod(env, graphicsEnvClass, headlessFn); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionClear(env); + } } return isHeadless; } diff -r 57f4422b7bdb src/java.desktop/unix/native/libawt_xawt/awt/awt_GraphicsEnv.c --- a/src/java.desktop/unix/native/libawt_xawt/awt/awt_GraphicsEnv.c Mon Jun 22 15:47:44 2015 +0300 +++ b/src/java.desktop/unix/native/libawt_xawt/awt/awt_GraphicsEnv.c Mon Jul 13 12:09:29 2015 +0530 @@ -1564,6 +1564,9 @@ for (i = 0; i < visScreenInfo->count; i++) { XdbeVisualInfo* visInfo = visScreenInfo->visinfo; (*env)->CallVoidMethod(env, this, midAddVisual, (visInfo[i]).visual); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionClear(env); + } } #endif /* !HEADLESS */ } diff -r 57f4422b7bdb src/java.desktop/unix/native/libawt_xawt/awt/awt_util.c --- a/src/java.desktop/unix/native/libawt_xawt/awt/awt_util.c Mon Jun 22 15:47:44 2015 +0300 +++ b/src/java.desktop/unix/native/libawt_xawt/awt/awt_util.c Mon Jul 13 12:09:40 2015 +0530 @@ -98,5 +98,8 @@ (*env)->CallStaticVoidMethod(env, threadClass, yieldMethodID); DASSERT(!((*env)->ExceptionOccurred(env))); + if ((*env)->ExceptionCheck(env)) { \ + (*env)->ExceptionClear(env); \ + } return JNI_TRUE; } /* awtJNI_ThreadYield() */ diff -r 57f4422b7bdb src/java.desktop/unix/native/libawt_xawt/awt/gtk2_interface.c --- a/src/java.desktop/unix/native/libawt_xawt/awt/gtk2_interface.c Mon Jun 22 15:47:44 2015 +0300 +++ b/src/java.desktop/unix/native/libawt_xawt/awt/gtk2_interface.c Mon Jul 13 12:09:47 2015 +0530 @@ -904,6 +904,9 @@ // Init the thread system to use GLib in a thread-safe mode (*env)->CallStaticVoidMethod(env, clazz, mid_lock); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionClear(env); + } // Calling g_thread_init() multiple times leads to crash on GLib < 2.24 // We can use g_thread_get_initialized () but it is available only for @@ -922,7 +925,13 @@ //called before gtk_init() or gtk_init_check() fp_gdk_threads_init(); } + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionClear(env); + } (*env)->CallStaticVoidMethod(env, clazz, mid_unlock); + if ((*env)->ExceptionCheck(env)) { + (*env)->ExceptionClear(env); + } } result = (*fp_gtk_init_check)(NULL, NULL);