[sip-comm-issues] [Issue 430] New - SystrayServiceJdicImpl is involved in a deadlock

lubomir_m at dev.java.net lubomir_m at dev.java.net
Tue Jul 29 10:21:41 CEST 2008


https://sip-communicator.dev.java.net/issues/show_bug.cgi?id=430
                 Issue #|430
                 Summary|SystrayServiceJdicImpl is involved in a deadlock
               Component|sip-communicator
                 Version|current
                Platform|PC
              OS/Version|Linux
                     URL|
                  Status|NEW
       Status whiteboard|
                Keywords|
              Resolution|
              Issue type|DEFECT
                Priority|P3
            Subcomponent|development
             Assigned to|issues at sip-communicator
             Reported by|lubomir_m






------- Additional comments from lubomir_m at dev.java.net Tue Jul 29 08:21:40 +0000 2008 -------
Admittedly not a showstopper for everyone because there're other GNU/Linux users
who don't have the problem being described, but
org.jdesktop.jdic.tray.internal.impl.GnomeTrayIconService in involved in a
deadlock on my Ubuntu 8.04 (hardy) with openjdk 6b09 triggered on receiving a
message (regardless of the protocol).

The stack traces of the two deadlocked threads are:

- Thread-72 which is BLOCKED on java.awt.Component$AWTTreeLock at 11c4ef6 owned by
AWT-EventQueue-0

java.awt.Window.setBounds(Window.java:3144)
org.jdesktop.jdic.tray.internal.impl.GnomeTrayIconService$BalloonMessageWindow.doShow(Unknown
Source)
   - locked
org.jdesktop.jdic.tray.internal.impl.GnomeTrayIconService$BalloonMessageWindow at 1039f33
org.jdesktop.jdic.tray.internal.impl.GnomeTrayIconService$BalloonMessageWindow.access$1400(Unknown
Source)
org.jdesktop.jdic.tray.internal.impl.GnomeTrayIconService$BalloonMessageWindow$5.run(Unknown
Source)

- AWT-EventQueue-0 which is BLOCKED on
org.jdesktop.jdic.tray.internal.impl.GnomeTrayIconService$BalloonMessageWindow at 1039f33
owned by Thread-72

java.awt.Component.addComponentListener(Component.java:4795)
sun.awt.im.InputContext.addClientWindowListeners(InputContext.java:975)
   - locked sun.awt.im.InputMethodContext at 969e08
sun.awt.im.InputContext.activateInputMethod(InputContext.java:404)
sun.awt.im.InputContext.focusGained(InputContext.java:337)
   - locked sun.awt.im.InputMethodContext at 969e08
   - locked java.awt.Component$AWTTreeLock at 11c4ef6
sun.awt.im.InputContext.dispatchEvent(InputContext.java:244)
sun.awt.im.InputMethodContext.dispatchEvent(InputMethodContext.java:197)
java.awt.Component.dispatchEventImpl(Component.java:4394)
java.awt.Container.dispatchEventImpl(Container.java:2163)
java.awt.Component.dispatchEvent(Component.java:4288)
java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1881)
java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:918)
java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:550)
java.awt.Component.dispatchEventImpl(Component.java:4332)
java.awt.Container.dispatchEventImpl(Container.java:2163)
java.awt.Component.dispatchEvent(Component.java:4288)
sun.awt.X11.XWindow$1.run(XWindow.java:378)
java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:226)
java.awt.EventQueue.dispatchEvent(EventQueue.java:602)
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275)
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200)
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:185)
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:177)
java.awt.EventDispatchThread.run(EventDispatchThread.java:138)

As AWT-EventQueue-0 is blocked, the whole application appears blocked.

While I'm still not sure how to fix the problem, I think it's worth trying the
tray API of Java 1.6+. From what I can make of the official response to issues
regarding JDIC's tray API, Java 1.6 has taken over future development of the API
in question and there's no desire to maintain two code bases. For the purposes
of SIP Communicator, I guess we'll have to switch between the two
implementations at runtime in order to provide compatibility with Java 1.5.

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe at sip-communicator.dev.java.net
For additional commands, e-mail: issues-help at sip-communicator.dev.java.net





More information about the issues mailing list