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