> On Apr 19, 2016, at 12:04 AM, David Holmes <david.hol...@oracle.com> wrote: > > On 19/04/2016 9:28 AM, Yasumasa Suenaga wrote: >> Hi Gerard, >> >> 2016/04/19 3:14 "Gerard Ziemski" <gerard.ziem...@oracle.com >> <mailto:gerard.ziem...@oracle.com>>: >> > >> > hi Yasumasa, >> > >> > Nice work. I have 2 questions: >> > >> > ======== >> > File: java.c >> > >> > #1 Shouldn’t we be checking for “(*env)->ExceptionOccurred(env)” >> after every single JNI call? In this example instead of NULL_CHECK, >> should we be using CHECK_EXCEPTION_NULL_LEAVE macro? >> >> It is not critical if we encounter error at JNI function call because >> we cannot set native thread name only. >> So I think that we do not need to leave from launcher process. > > I agree we do not need to abort if an exception occurs (and in fact I don't > think an exception is even possible from this code), but we should ensure any > pending exception is cleared before any futher JNI calls might be made. Note > that NULL_CHECK is already used extensively throughout the launcher code - so > if this usage is wrong then it is all wrong! More on this code below ...
Isn’t there a risk that: (*env)->CallVoidMethod(env, currentThread, setNativeNameID, + nameString, JNI_TRUE); will raise an exception? In the least, shouldn’t we clear any possible pending exceptions at the beginning of “SetNativeThreadName“, as you say, but also at the very end? cheers