This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 248122 - Deadlock in sun.awt.X11.XClipboard
Summary: Deadlock in sun.awt.X11.XClipboard
Status: RESOLVED INCOMPLETE
Alias: None
Product: platform
Classification: Unclassified
Component: -- Other -- (show other bugs)
Version: 8.1
Hardware: All All
: P1 normal (vote)
Assignee: Stanislav Aubrecht
URL:
Keywords:
: 248902 (view as bug list)
Depends on:
Blocks:
 
Reported: 2014-10-23 06:47 UTC by _ tboudreau
Modified: 2015-09-01 14:01 UTC (History)
6 users (show)

See Also:
Issue Type: DEFECT
Exception Reporter: 212920


Attachments
stacktrace (10.63 KB, text/plain)
2014-10-23 06:47 UTC, _ tboudreau
Details
stacktrace (6.99 KB, text/plain)
2014-11-26 16:10 UTC, Jiri Kovalsky
Details
stacktrace (16.91 KB, text/plain)
2014-12-02 17:13 UTC, Alexander Simon
Details
stacktrace (7.15 KB, text/plain)
2014-12-03 15:31 UTC, parubin
Details
stacktrace (7.15 KB, text/plain)
2014-12-04 15:43 UTC, Exceptions Reporter
Details

Note You need to log in before you can comment on or make changes to this bug.
Description _ tboudreau 2014-10-23 06:47:11 UTC
Build: NetBeans IDE Dev (Build NetBeans-554-on-20141009)
VM: Java HotSpot(TM) 64-Bit Server VM, 25.20-b23, Java(TM) SE Runtime Environment, 1.8.0_20-b26
OS: Linux

User Comments:
tboudreau: Pasted some code which triggered a dialog offering to import classes.  Pressed escape or clicked cancel, I don't remember which.




Stacktrace: 
org.netbeans.modules.deadlock.detector.Detector$DeadlockDetectedException: AWT-XAWT
   at sun.awt.X11.XClipboard$CheckChangeTimerTask.run(XClipboard.java:180)
   at sun.awt.X11.XToolkit.callTimeoutTasks(XToolkit.java:1912)
   at sun.awt.X11.XToolkit.run(XToolkit.java:558)
   at sun.awt.X11.XToolkit.run(XToolkit.java:523)
   at java.lang.Thread.run(Thread.java:745)
Comment 1 _ tboudreau 2014-10-23 06:47:13 UTC
Created attachment 150066 [details]
stacktrace
Comment 2 David Strupl 2014-10-30 20:01:07 UTC
From the exception reporter:

Deadlocked threads :
"AWT-EventQueue-0" Id=20 in WAITING on lock=java.util.concurrent.locks.ReentrantLock$NonfairSync@38b4a7fd
     owned by AWT-XAWT Id=19
    at sun.misc.Unsafe.park(Native Method)
    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:836)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:870)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1199)
    at java.util.concurrent.locks.ReentrantLock$NonfairSync.lock(ReentrantLock.java:209)
    at java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:285)
    at sun.awt.SunToolkit.awtLock(SunToolkit.java:255)
    at sun.awt.X11.XRootWindow.getInstance(XRootWindow.java:36)
    at sun.awt.X11.XBaseWindow.getXAWTRootWindow(XBaseWindow.java:412)
    at sun.awt.X11.XClipboard.registerClipboardViewerChecked(XClipboard.java:166)
      - locked java.lang.Object@48890c5c
    at sun.awt.datatransfer.SunClipboard.addFlavorListener(SunClipboard.java:377)
      - locked sun.awt.X11.XClipboard@63a18235
    at org.netbeans.NbClipboard.eventDispatched(NbClipboard.java:372)
    at java.awt.Toolkit$SelectiveAWTEventListener.eventDispatched(Toolkit.java:2425)
    at java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Toolkit.java:2317)
    at java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Toolkit.java:2316)
    at java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Toolkit.java:2316)
    at java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Toolkit.java:2316)
    at java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Toolkit.java:2316)
    at java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Toolkit.java:2316)
    at java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Toolkit.java:2316)
    at java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Toolkit.java:2316)
    at java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Toolkit.java:2316)
    at java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Toolkit.java:2316)
    at java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Toolkit.java:2316)
    at java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Toolkit.java:2316)
    at java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Toolkit.java:2316)
    at java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Toolkit.java:2316)
    at java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Toolkit.java:2316)
    at java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Toolkit.java:2316)
    at java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Toolkit.java:2316)
    at java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Toolkit.java:2316)
    at java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Toolkit.java:2316)
    at java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Toolkit.java:2316)
    at java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Toolkit.java:2316)
    at java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Toolkit.java:2316)
    at java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Toolkit.java:2316)
    at java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Toolkit.java:2316)
    at java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Toolkit.java:2316)
    at java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Toolkit.java:2316)
    at java.awt.Toolkit.notifyAWTEventListeners(Toolkit.java:2275)
    at java.awt.Component.dispatchEventImpl(Component.java:4777)
    at java.awt.Container.dispatchEventImpl(Container.java:2292)
    at java.awt.Window.dispatchEventImpl(Window.java:2739)
    at java.awt.Component.dispatchEvent(Component.java:4703)
    at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1954)
    at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:995)
    at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:488)
    at java.awt.Component.dispatchEventImpl(Component.java:4752)
    at java.awt.Container.dispatchEventImpl(Container.java:2292)
    at java.awt.Window.dispatchEventImpl(Window.java:2739)
    at java.awt.Component.dispatchEvent(Component.java:4703)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:746)
    at java.awt.EventQueue.access$400(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:697)
    at java.awt.EventQueue$3.run(EventQueue.java:691)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86)
    at java.awt.EventQueue$4.run(EventQueue.java:719)
    at java.awt.EventQueue$4.run(EventQueue.java:717)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:716)
    at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:159)
    at java.awt.SentEvent.dispatch(SentEvent.java:70)
    at java.awt.DefaultKeyboardFocusManager$DefaultKeyboardFocusManagerSentEvent.dispatch(DefaultKeyboardFocusManager.java:217)
    at java.awt.DefaultKeyboardFocusManager.sendMessage(DefaultKeyboardFocusManager.java:244)
    at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:366)
    at java.awt.Component.dispatchEventImpl(Component.java:4752)
    at java.awt.Container.dispatchEventImpl(Container.java:2292)
    at java.awt.Window.dispatchEventImpl(Window.java:2739)
    at java.awt.Component.dispatchEvent(Component.java:4703)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:746)
    at java.awt.EventQueue.access$400(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:697)
    at java.awt.EventQueue$3.run(EventQueue.java:691)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86)
    at java.awt.EventQueue$4.run(EventQueue.java:719)
    at java.awt.EventQueue$4.run(EventQueue.java:717)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:716)
    at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:159)
    at java.awt.SequencedEvent.dispatch(SequencedEvent.java:128)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:744)
    at java.awt.EventQueue.access$400(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:697)
    at java.awt.EventQueue$3.run(EventQueue.java:691)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86)
    at java.awt.EventQueue$4.run(EventQueue.java:719)
    at java.awt.EventQueue$4.run(EventQueue.java:717)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:716)
    at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:159)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:109)
    at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:184)
    at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:229)
    at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:227)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:227)
    at java.awt.Dialog.show(Dialog.java:1084)
    at org.netbeans.core.windows.services.NbPresenter.superShow(NbPresenter.java:1065)
    at org.netbeans.core.windows.services.NbPresenter.doShow(NbPresenter.java:1115)
    at org.netbeans.core.windows.services.NbPresenter.run(NbPresenter.java:1087)
    at org.netbeans.core.windows.services.NbPresenter.run(NbPresenter.java:128)
    at org.openide.util.Mutex.doEventAccess(Mutex.java:1376)
    at org.openide.util.Mutex.readAccess(Mutex.java:278)
    at org.netbeans.core.windows.services.NbPresenter.show(NbPresenter.java:1072)
    at java.awt.Component.show(Component.java:1654)
    at java.awt.Component.setVisible(Component.java:1606)
    at java.awt.Window.setVisible(Window.java:1014)
    at java.awt.Dialog.setVisible(Dialog.java:1005)
    at org.netbeans.modules.java.editor.imports.ClipboardHandler.showImportDialog(ClipboardHandler.java:254)
    at org.netbeans.modules.java.editor.imports.ClipboardHandler.access$1100(ClipboardHandler.java:130)
    at org.netbeans.modules.java.editor.imports.ClipboardHandler$ImportingTransferHandler$2.run(ClipboardHandler.java:597)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:744)
    at java.awt.EventQueue.access$400(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:697)
    at java.awt.EventQueue$3.run(EventQueue.java:691)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:714)
    at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:159)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

    Locked monitors: count = 2
      - java.lang.Object@48890c5c locked at 
          10 sun.awt.X11.XClipboard.registerClipboardViewerChecked(XClipboard.java:166)
      - sun.awt.X11.XClipboard@63a18235 locked at 
          11 sun.awt.datatransfer.SunClipboard.addFlavorListener(SunClipboard.java:377)
    Locked synchronizers: count = 0


"AWT-XAWT" Id=19 in BLOCKED on lock=java.lang.Object@48890c5c
     owned by AWT-EventQueue-0 Id=20
    at sun.awt.X11.XClipboard$CheckChangeTimerTask.run(XClipboard.java:180)
    at sun.awt.X11.XToolkit.callTimeoutTasks(XToolkit.java:1912)
    at sun.awt.X11.XToolkit.run(XToolkit.java:558)
    at sun.awt.X11.XToolkit.run(XToolkit.java:523)
    at java.lang.Thread.run(Thread.java:745)

    Locked monitors: count = 0
    Locked synchronizers: count = 1
      - java.util.concurrent.locks.ReentrantLock$NonfairSync@38b4a7fd
Comment 3 _ tboudreau 2014-10-30 22:14:01 UTC
Looks like an AWT bug, then. 

tim@tim ~ $ java -version
Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=lcd
java version "1.8.0_25"
Java(TM) SE Runtime Environment (build 1.8.0_25-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)
Comment 4 Antonin Nebuzelsky 2014-11-03 14:50:36 UTC
Stando, related to recent clipboard changes in trunk?
Comment 5 Vladimir Riha 2014-11-26 00:06:58 UTC
*** Bug 248902 has been marked as a duplicate of this bug. ***
Comment 6 Jiri Kovalsky 2014-11-26 16:10:07 UTC
Created attachment 150729 [details]
stacktrace

I tried to create JUnit tests for teststorun package of JUnitSampleProjectAnt project. I unchecked option to create suite, selected Test Packages as destination and pushed OK button when IDE deadlocked.
Comment 7 Alexander Simon 2014-12-02 17:13:10 UTC
Created attachment 150845 [details]
stacktrace

invoke find usages
Comment 8 Exceptions Reporter 2014-12-02 17:13:18 UTC
This bug already has 5 duplicates 
see http://statistics.netbeans.org/exceptions/detail.do?id=212920
Comment 9 parubin 2014-12-03 15:31:13 UTC
Created attachment 150860 [details]
stacktrace

In an existing project, I started the dialog to create a new Java class, named it, then changed my mind (planning to create a Java main class instead) and canceled the creation dialog. As soon as I clicked cancel, the IDE froze (with an "I-beam" cursor). It did not respond to any mouse clicks, and I ended up having to force-kill it.
Comment 10 Exceptions Reporter 2014-12-04 15:43:14 UTC
Created attachment 150882 [details]
stacktrace

during rescanning project netbeans doesn't respond
Comment 11 Stanislav Aubrecht 2014-12-05 09:43:16 UTC
core-main b7385956de2d
Comment 12 Quality Engineering 2014-12-09 04:20:45 UTC
Integrated into 'main-silver', will be available in build *201412090001* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress)

Changeset: http://hg.netbeans.org/main-silver/rev/b7385956de2d
User: S. Aubrecht <saubrecht@netbeans.org>
Log: #248122 - refined fix for #247585 to be active on Windows only
Comment 13 Alexander Simon 2015-02-27 09:28:41 UTC
Reproduced in NB 802 +  802patch
Comment 14 Stanislav Aubrecht 2015-02-27 10:23:24 UTC
(In reply to Alexander Simon from comment #13)
> Reproduced in NB 802 +  802patch

Would be nice to add fresh steps to reproduce and fresh stack trace when reopening.
Comment 15 Ondrej Vrabec 2015-02-27 10:40:02 UTC
btw, the fix is not in 8.0.2 now, is it? It's been fixed only in Dev so it makes sense people are able to reproduce still in 8.0.2.