JDK-6237410 : MAWT: FreeMind on display :0.1 hangs the X server during drag and drop (Java 1.5, Solaris 10)
  • Type: Bug
  • Component: client-libs
  • Sub-Component: java.awt
  • Affected Version: solaris_10,5.0
  • Priority: P4
  • Status: Closed
  • Resolution: Won't Fix
  • OS: solaris_9,solaris_10
  • CPU: generic,other
  • Submitted: 2005-03-08
  • Updated: 2011-01-19
  • Resolved: 2007-07-02
Related Reports
Duplicate :  
Relates :  
Relates :  
Description
The FreeMind Java mind mapping application can hang the X server
when run on screen 1 (eg :0.1). It works fine on screen 0 (eg :0.0).

The mouse still moves but all actions such as key presses and button
clicks are ignored. The solution is log in remotely and kill the JVM
(using SIGKILL, since SIGTERM isn't enough)

The problem is easily reproduced, download and run FreeMind:

	<http://freemind.sourceforge.net/>

Then:

1. Create a simple mind map
2. Drag one of the nodes to another node
3. FreeMind and the X server hang

It's 100% reproducible for me running either Java 1.5.0-b64 or Java
1.5.0_01-b08 on JDS3 or CDE on Solaris 10 on Sun Ray or local desktop.

The relevant Java thread looks like this:

 ff33d1c4 pollsys  (b1a7e040, 1, 0, 0)
 ff2df934 pselect  (b1a7e040, ff367a84, ff367a84, 40, 0, 0) + 1c8
 ff2dfc78 select   (25, b1a7e238, 0, 0, 0, 0) + 6c
 b1f9d1b0 _XWaitForReadable (12a8640, 10, 4, b1a7e238, 1, 0) + dc
 b1f9cfe0 _XRead   (ffffffff, b1a7e45c, 8, 12a8640, 20, 8) + ec
 b1f9a55c XOpenDisplay (62c2b8, b1fd30f8, 0, b1a7e448, 12a8640, 0) + 534
 fa8cb634 ???????? (5, 1, 254e0, 3a, fa8f0ae0, 4) + 4893160c
 fa8cb728 ???????? (2a59b0, d196d4, f3, d196dc, 18, 0) + 48931700
 fa8cb768 ???????? (2a59b0, 24, 2538c, 363338, fa8f0ae0, 0) + 48931740
 fa8cbcd8 ???????? (2a59b0, 400d48, d, 34, d196c8, fa8f3801) + 48931cb0
 fa8cee94 Java_sun_awt_motif_X11DragSourceContextPeer_startDrag (8d0d50, fa8f564c, 40000003, d, fa8f5a80, fa8f0ae0) + 480
 f880c280 * sun/awt/motif/X11DragSourceContextPeer.startDrag(Ljava/awt/Component;Lsun/awt/motif/MWindowPeer;Ljava/awt/datatransfer/Transferable;Ljava/awt/event/InputEvent;Ljava/awt/Cursor;II[JLjava/util/Map;)J+-25636
 f880c224 * sun/awt/motif/X11DragSourceContextPeer.startDrag(Ljava/awt/Component;Lsun/awt/motif/MWindowPeer;Ljava/awt/datatransfer/Transferable;Ljava/awt/event/InputEvent;Ljava/awt/Cursor;II[JLjava/util/Map;)J+0
 f88058fc * sun/awt/motif/X11DragSourceContextPeer.startDrag(Ljava/awt/datatransfer/Transferable;[JLjava/util/Map;)V+119 (line 74)
 f8805764 * sun/awt/dnd/SunDragSourceContextPeer.startDrag(Ljava/awt/dnd/DragSourceContext;Ljava/awt/Cursor;Ljava/awt/Image;Ljava/awt/Point;)V+91 (line 111)
 f8805c2c * java/awt/dnd/DragSource.startDrag(Ljava/awt/dnd/DragGestureEvent;Ljava/awt/Cursor;Ljava/awt/Image;Ljava/awt/Point;Ljava/awt/datatransfer/Transferable;Ljava/awt/dnd/DragSourceListener;Ljava/awt/datatransfer/FlavorMap;)V+66 (line 306)
 f8805764 * java/awt/dnd/DragSource.startDrag(Ljava/awt/dnd/DragGestureEvent;Ljava/awt/Cursor;Ljava/awt/datatransfer/Transferable;Ljava/awt/dnd/DragSourceListener;)V+9 (line 403)
 f8805764 * java/awt/dnd/DragGestureEvent.startDrag(Ljava/awt/Cursor;Ljava/awt/datatransfer/Transferable;Ljava/awt/dnd/DragSourceListener;)V+8 (line 223)
 f8805764 * freemind/controller/NodeDragListener.dragGestureRecognized(Ljava/awt/dnd/DragGestureEvent;)V+137 (line 82)
 f8805c2c * java/awt/dnd/DragGestureRecognizer.fireDragGestureRecognized(ILjava/awt/Point;)V+25 (line 339)
 f8805764 * sun/awt/motif/MMouseDragGestureRecognizer.mouseDragged(Ljava/awt/event/MouseEvent;)V+105 (line 202)
 f8805c2c * java/awt/AWTEventMulticaster.mouseDragged(Ljava/awt/event/MouseEvent;)V+21 (line 262)
 f8805c2c * java/awt/Component.processMouseMotionEvent(Ljava/awt/event/MouseEvent;)V+52 (line 5536)
 f8805764 * javax/swing/JComponent.processMouseMotionEvent(Ljava/awt/event/MouseEvent;)V+42 (line 3111)
 f8805764 * java/awt/Component.processEvent(Ljava/awt/AWTEvent;)V+92 (line 5257)
 f8805764 * java/awt/Container.processEvent(Ljava/awt/AWTEvent;)V+18 (line 1966)
 f8859400 * C2IAdapter
 f892bc80 * *java/awt/Component.dispatchEventImpl(Ljava/awt/AWTEvent;)V+477 (line 3955)
 f884e57c * java/lang/reflect/Field.setBoolean(Ljava/lang/Object;Z)V+12 (line 686)
 f8805764 * java/awt/Container.dispatchEventImpl(Ljava/awt/AWTEvent;)V+42 (line 2024)
 f8859400 * C2IAdapter
 f88dfdcc * *java/awt/Component.dispatchEvent(Ljava/awt/AWTEvent;)V+2 (line 3803)
 f88dfdcc * *java/awt/LightweightDispatcher.retargetMouseEvent(Ljava/awt/Component;ILjava/awt/event/MouseEvent;)V+304 (line 4212)
 f88a2c44 * java/awt/LightweightDispatcher.isMouseGrab(Ljava/awt/event/MouseEvent;)Z+93 (line 3856)
 f8805764 * java/awt/LightweightDispatcher.processMouseEvent(Ljava/awt/event/MouseEvent;)Z+191 (line 3909)
 f88057a8 * java/awt/LightweightDispatcher.dispatchEvent(Ljava/awt/AWTEvent;)Z+50 (line 3822)
 f88057a8 * java/awt/Container.dispatchEventImpl(Ljava/awt/AWTEvent;)V+12 (line 2010)
 f8805764 * java/awt/Window.dispatchEventImpl(Ljava/awt/AWTEvent;)V+19 (line 1766)
 f8805764 * java/awt/Component.dispatchEvent(Ljava/awt/AWTEvent;)V+2 (line 3803)
 f8805764 * java/awt/EventQueue.dispatchEvent(Ljava/awt/AWTEvent;)V+46 (line 463)
 f8805764 * java/awt/EventDispatchThread.pumpOneEventForHierarchy(ILjava/awt/Component;)Z+200 (line 234)
 f88057a8 * java/awt/EventDispatchThread.pumpEventsForHierarchy(ILjava/awt/Conditional;Ljava/awt/Component;)V+26 (line 163)
 f8805764 * java/awt/EventDispatchThread.pumpEvents(ILjava/awt/Conditional;)V+4 (line 157)
 f8805764 * java/awt/EventDispatchThread.pumpEvents(Ljava/awt/Conditional;)V+3 (line 149)
 f8805764 * java/awt/EventDispatchThread.run()V+9 (line 110)
 f8800218 * StubRoutines (1)
 fe98d978 void JavaCalls::call_helper(JavaValue*,methodHandle*,JavaCallArguments*,Thread*) (1, 8d0c98, b1a7faa0, b1a7f9a0, 1, f88001c0) + 528
 feaacdec void JavaCalls::call_virtual(JavaValue*,Handle,KlassHandle,symbolHandle,symbolHandle,Thread*) (7074, 8d0c98, 3bf410, 3bf41c, 3bf418, e517b328) + 188
 feaca754 void thread_entry(JavaThread*,Thread*) (b402eea0, 8d0c98, 3bf7fc, fef531b8, fef53284, fef52ca8) + 134
 feac68e4 void JavaThread::run() (8d0c98, 0, feac6784, fef3ba68, 73a0, 7000) + 160
 feabe128 _start   (8d0c98, 5800, 638ce, 47ac, feef0000, 59c018) + 13c
 ff33c400 _lwp_start (0, 0, 0, 0, 0, 0)

The X server is stuck here:

114379:	/usr/openwin/bin/Xsun :17 -nobanner -auth /var/dt/A:17-OQGWmg -nobanne
 ff33d1c4 pollsys  (ffbfe6e0, 6, ffbfe9b0, 0)
 ff2df934 pselect  (ffbfe6e0, ff367a84, ff367a84, 44, ffbfe9b0, 0) + 1c8
 ff2dfc78 select   (4d, 4020e0, ffbfebb8, 0, 0, 0) + 6c
 0002fb44 WaitForSomething (0, 4115f0, 0, 0, 0, 0) + 6ac
 0002f290 Dispatch (ffbfed28, ffffffff, 39, 411614, 1, 0) + a4
 0005023c main     (417398, 17cc00, 417398, 411520, 17baa8, 180000) + 8cc
 0005d04c _start   (0, 0, 0, 0, 0, 0) + 108

This was taken on a Sun Ray but the problem has also been seen on
standard Solaris desktops. This problem doesn't occur on Java 1.4 (eg
1.4.2_06).

###@###.### 2005-04-06 14:48:21 GMT

Comments
EVALUATION As it is stated in comments section the problem is specific for MToolkit. We are going to remove MToolkit in 7.0, and so we will not fix this particular CR. Therefor I am closing the change request.
02-07-2007

EVALUATION I can reproduce the problem on solaris 10 (x86) with Notepad demo. The hang could be solved by restarting Gnome session.
17-11-2006

EVALUATION From the stack trace it appears that this is awt problem. ###@###.### 2005-03-08 15:29:48 GMT Could not reproduce the problem using JDK 1.5.0 b64 on a Sparc/Solaris10 machine with one monitor. Is the problem reproducible only on one machine? Since the sources of FreeMind are not available, it would be especially helpful to have a minimal test case (with its sources) that reproduces the problem. ###@###.### 2005-03-09 11:57:26 GMT i can reproduce this easily on JDK 1.5 solaris 9. ###@###.### 2005-04-04 16:41:50 GMT ###@###.### 2005-04-06 10:59:57 GMT
08-03-2005

WORK AROUND Use an older version of Java, eg on Solaris 10: $ /usr/j2se/bin/java -jar freemind.jar ###@###.### 2005-03-08 12:28:14 GMT Use -Dawt.toolkit=sun.awt.X11.XToolkit, eg $ /usr/bin/java -Dawt.toolkit=sun.awt.X11.XToolkit -jar freemind.jar ###@###.### 2005-04-06 14:48:21 GMT
08-03-2005