Skip to content

Commit 8a0c47d

Browse files
author
Alexander Zvegintsev
committed
8371225: Missing release of GDK lock in Java_sun_awt_X11_GtkFileDialogPeer_run()
Reviewed-by: aivanov, serb
1 parent 90ccdf2 commit 8a0c47d

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

src/java.desktop/unix/native/libawt_xawt/awt/sun_awt_X11_GtkFileDialogPeer.c

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2010, 2024, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2010, 2025, Oracle and/or its affiliates. All rights reserved.
33
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
*
55
* This code is free software; you can redistribute it and/or modify it
@@ -324,15 +324,15 @@ Java_sun_awt_X11_GtkFileDialogPeer_run(JNIEnv * env, jobject jpeer,
324324
JNU_CHECK_EXCEPTION(env);
325325
}
326326

327-
gtk->gdk_threads_enter();
328-
329327
const char *title = jtitle == NULL? "": (*env)->GetStringUTFChars(env, jtitle, 0);
330328
if (title == NULL) {
331329
(*env)->ExceptionClear(env);
332330
JNU_ThrowOutOfMemoryError(env, "Could not get title");
333331
return;
334332
}
335333

334+
gtk->gdk_threads_enter();
335+
336336
if (mode == java_awt_FileDialog_SAVE) {
337337
/* Save action */
338338
dialog = gtk->gtk_file_chooser_dialog_new(title, NULL,
@@ -360,6 +360,7 @@ Java_sun_awt_X11_GtkFileDialogPeer_run(JNIEnv * env, jobject jpeer,
360360
if (jdir != NULL) {
361361
const char *dir = (*env)->GetStringUTFChars(env, jdir, 0);
362362
if (dir == NULL) {
363+
gtk->gdk_threads_leave();
363364
(*env)->ExceptionClear(env);
364365
JNU_ThrowOutOfMemoryError(env, "Could not get dir");
365366
return;
@@ -372,6 +373,7 @@ Java_sun_awt_X11_GtkFileDialogPeer_run(JNIEnv * env, jobject jpeer,
372373
if (jfile != NULL) {
373374
const char *filename = (*env)->GetStringUTFChars(env, jfile, 0);
374375
if (filename == NULL) {
376+
gtk->gdk_threads_leave();
375377
(*env)->ExceptionClear(env);
376378
JNU_ThrowOutOfMemoryError(env, "Could not get filename");
377379
return;

0 commit comments

Comments
 (0)