From a0e99eb3e477a606c12e9c2f431d5c7a796d2b01 Mon Sep 17 00:00:00 2001 From: Anthony Petrov Date: Fri, 18 Jun 2010 17:09:28 +0400 Subject: [PATCH] 6959165: JVM crash during execution FileDialogBufferOverflowTest.html Add proper synchronization Reviewed-by: art, dcherepanov --- .../solaris/native/sun/awt/sun_awt_X11_GtkFileDialogPeer.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/jdk/src/solaris/native/sun/awt/sun_awt_X11_GtkFileDialogPeer.c b/jdk/src/solaris/native/sun/awt/sun_awt_X11_GtkFileDialogPeer.c index 717a38382d7..f044364220c 100644 --- a/jdk/src/solaris/native/sun/awt/sun_awt_X11_GtkFileDialogPeer.c +++ b/jdk/src/solaris/native/sun/awt/sun_awt_X11_GtkFileDialogPeer.c @@ -52,11 +52,15 @@ JNIEXPORT void JNICALL Java_sun_awt_X11_GtkFileDialogPeer_quit { if (dialog != NULL) { + fp_gdk_threads_enter(); + fp_gtk_widget_hide (dialog); fp_gtk_widget_destroy (dialog); fp_gtk_main_quit (); dialog = NULL; + + fp_gdk_threads_leave(); } } @@ -162,7 +166,6 @@ Java_sun_awt_X11_GtkFileDialogPeer_run(JNIEnv * env, jobject jpeer, (*env)->GetJavaVM(env, &jvm); } - fp_gdk_threads_init(); fp_gdk_threads_enter(); const char *title = (*env)->GetStringUTFChars(env, jtitle, 0);