On Wed, 29 Sep 2021 01:46:32 GMT, Sergey Bylokhov <s...@openjdk.org> wrote:

>> Phil Race has updated the pull request incrementally with one additional 
>> commit since the last revision:
>> 
>>   8274397: [macOS] Stop setting env. var JAVA_MAIN_CLASS_<pid> in launcher 
>> code
>
> src/java.base/macosx/native/libjli/java_md_macosx.m line 879:
> 
>> 877:     }
>> 878: 
>> 879:     (*env)->DeleteLocalRef(env, jKey);
> 
> I am not sure about error handling, the jkey is not removed when NULL_CHECK 
> is used. Also an exceptions are not cleared in case of NULL_CHECK like in 
> other cases, is it intentional?

Well .. they aren't removed by the existing code either. And this is the 
launcher.
So far as I can tell if we error out of here (as I found when I made a typo in 
a method signature) the
VM exits very rapidly. So if I do anything here, it would be to remove 
DeleteLocalRef since it really doesn't matter to clean up local refs when you 
are either bailing from native .. or the entire process .. cleaning up when you 
are continuing on (as the code does) is perhaps more important since you might 
need more local refs before you are done.
Or file a separate bug against the launcher and JNI clean up after error 
handling.
java.base/share/native/libjli/java.c is a good example of where the same 
pattern exists.

-------------

PR: https://git.openjdk.java.net/jdk/pull/5724

Reply via email to