8068033: JNI exception pending in jdk/src/share/bin/java.c
authorksrini
Tue, 03 Feb 2015 09:49:27 -0800
changeset 28771 2885fb2e1002
parent 28770 b74a583c3125
child 28772 5259f2a59d83
8068033: JNI exception pending in jdk/src/share/bin/java.c Reviewed-by: mchung, serb
jdk/src/java.base/macosx/native/libjli/java_md_macosx.c
jdk/src/java.base/share/native/libjli/java.c
jdk/src/java.base/share/native/libjli/java.h
--- a/jdk/src/java.base/macosx/native/libjli/java_md_macosx.c	Tue Feb 03 08:45:07 2015 -0800
+++ b/jdk/src/java.base/macosx/native/libjli/java_md_macosx.c	Tue Feb 03 09:49:27 2015 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -1059,6 +1059,7 @@
 void PostJVMInit(JNIEnv *env, jstring mainClass, JavaVM *vm) {
     jvmInstance = vm;
     SetMainClassForAWT(env, mainClass);
+    CHECK_EXCEPTION_RETURN();
     ShowSplashScreen();
 }
 
--- a/jdk/src/java.base/share/native/libjli/java.c	Tue Feb 03 08:45:07 2015 -0800
+++ b/jdk/src/java.base/share/native/libjli/java.c	Tue Feb 03 09:49:27 2015 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1995, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -350,12 +350,6 @@
         } \
     } while (JNI_FALSE)
 
-#define CHECK_EXCEPTION_RETURN() \
-    do { \
-        if ((*env)->ExceptionOccurred(env)) { \
-            return; \
-        } \
-    } while (JNI_FALSE)
 
 int JNICALL
 JavaMain(void * _args)
@@ -466,6 +460,7 @@
      * of the application class.
      */
     PostJVMInit(env, appClass, vm);
+    CHECK_EXCEPTION_LEAVE(1);
     /*
      * The LoadMainClass not only loads the main class, it will also ensure
      * that the main method's signature is correct, therefore further checking
--- a/jdk/src/java.base/share/native/libjli/java.h	Tue Feb 03 08:45:07 2015 -0800
+++ b/jdk/src/java.base/share/native/libjli/java.h	Tue Feb 03 09:49:27 2015 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -254,4 +254,11 @@
 #define NULL_CHECK(NC_check_pointer) \
     NULL_CHECK_RETURN_VALUE(NC_check_pointer, )
 
+#define CHECK_EXCEPTION_RETURN() \
+    do { \
+        if ((*env)->ExceptionOccurred(env)) { \
+            return; \
+        } \
+    } while (JNI_FALSE)
+
 #endif /* _JAVA_H_ */