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