< 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 >