On Tue, 3 Jun 2025 12:14:23 GMT, Alexander Zvegintsev <azveg...@openjdk.org> 
wrote:

>> src/java.desktop/unix/native/libawt_xawt/awt/screencast_pipewire.c line 1209:
>> 
>>> 1207:     AWT_UNLOCK();
>>> 1208: 
>>> 1209:     if (key == NoSymbol || (*env)->ExceptionCheck(env)) {
>> 
>> I guess we normally call ExceptionCheck after we call some JNI methods like 
>> (*env)->NewString or (*env)->CallObjectMethod. Here before this check we are 
>> not calling any JNI method so I think we should do it after we call 
>> (*env)->GetStringUTFChars ie. after l1214
>
>> we are not calling any JNI method
> 
> We have the `AWT_LOCK()` / `AWT_UNLOCK();` macro expansions with JNI methods 
> being called.
> 
> https://github.com/openjdk/jdk/blob/78a392aa3b0cda52cfacfa15250fa61010519424/src/java.desktop/unix/native/common/awt/awt.h#L97-L110
> 
> This is exactly what static code analysis tool complains about.
> 
>>JNI exception pending in 
>>Java_sun_awt_screencast_ScreencastHelper_remoteDesktopKeyImpl of 
>>screencast_pipewire.c:1214

But we are calling ExceptionCheck in that macro in l104 so why do we again need 
to call?

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

PR Review Comment: https://git.openjdk.org/jdk/pull/25605#discussion_r2123668284

Reply via email to