< prev index next >

jdk/src/java.base/share/native/libjli/java.c

Print this page

        

*** 374,383 **** --- 374,389 ---- ret = (CEL_return_value); \ LEAVE(); \ } \ } while (JNI_FALSE) + #define CHECK_EXCEPTION_PRINT() \ + do { \ + if ((*env)->ExceptionOccurred(env)) { \ + JLI_ReportExceptionDescription(env); \ + } \ + } while (JNI_FALSE) int JNICALL JavaMain(void * _args) { JavaMainArgs *args = (JavaMainArgs *)_args;
*** 1527,1536 **** --- 1533,1543 ---- cls, "makePlatformString", "(Z[B)Ljava/lang/String;")); } str = (*env)->CallStaticObjectMethod(env, cls, makePlatformStringMID, USE_STDERR, ary); (*env)->DeleteLocalRef(env, ary); + CHECK_EXCEPTION_PRINT(); return str; } } return 0; }
*** 1578,1587 **** --- 1585,1595 ---- "(ZILjava/lang/String;)Ljava/lang/Class;")); NULL_CHECK0(str = NewPlatformString(env, name)); NULL_CHECK0(result = (*env)->CallStaticObjectMethod(env, cls, mid, USE_STDERR, mode, str)); + CHECK_EXCEPTION_PRINT(); if (JLI_IsTraceLauncher()) { end = CounterGet(); printf("%ld micro seconds to load main class\n", (long)(jint)Counter2Micros(end-start));
*** 1599,1609 **** NULL_CHECK0(cls); NULL_CHECK0(mid = (*env)->GetStaticMethodID(env, cls, "getApplicationClass", "()Ljava/lang/Class;")); ! return (*env)->CallStaticObjectMethod(env, cls, mid); } /* * For tools, convert command line args thus: * javac -cp foo:foo/"*" -J-ms32m ... --- 1607,1619 ---- NULL_CHECK0(cls); NULL_CHECK0(mid = (*env)->GetStaticMethodID(env, cls, "getApplicationClass", "()Ljava/lang/Class;")); ! cls = (*env)->CallStaticObjectMethod(env, cls, mid); ! CHECK_EXCEPTION_PRINT(); ! return cls; } /* * For tools, convert command line args thus: * javac -cp foo:foo/"*" -J-ms32m ...
*** 1810,1819 **** --- 1820,1830 ---- "()V" ) ); (*env)->CallStaticVoidMethod(env, ver, print); + CHECK_EXCEPTION_PRINT(); } /* * Prints all the Java settings, see the java implementation for more details. */
*** 1832,1841 **** --- 1843,1853 ---- joptString, (jlong)initialHeapSize, (jlong)maxHeapSize, (jlong)threadStackSize, ServerClassMachine()); + CHECK_EXCEPTION_PRINT(); } /** * List modules supported by the runtime */
*** 1850,1859 **** --- 1862,1872 ---- "listModules", "(ZLjava/lang/String;)V")); NULL_CHECK(joptString = (*env)->NewStringUTF(env, optString)); (*env)->CallStaticVoidMethod(env, cls, listModulesID, USE_STDERR, joptString); + CHECK_EXCEPTION_PRINT(); } /* * Prints default usage or the Xusage message, see sun.launcher.LauncherHelper.java */
*** 1867,1876 **** --- 1880,1890 ---- NULL_CHECK(cls); if (doXUsage) { NULL_CHECK(printXUsageMessage = (*env)->GetStaticMethodID(env, cls, "printXUsageMessage", "(Z)V")); (*env)->CallStaticVoidMethod(env, cls, printXUsageMessage, USE_STDERR); + CHECK_EXCEPTION_PRINT(); } else { NULL_CHECK(initHelp = (*env)->GetStaticMethodID(env, cls, "initHelpMessage", "(Ljava/lang/String;)V")); NULL_CHECK(vmSelect = (*env)->GetStaticMethodID(env, cls, "appendVmSelectMessage",
*** 1931,1940 **** --- 1945,1955 ---- CHECK_EXCEPTION_RETURN(); } /* Complete the usage message and print to stderr*/ (*env)->CallStaticVoidMethod(env, cls, printHelp, USE_STDERR); + CHECK_EXCEPTION_RETURN(); } return; } /*
< prev index next >