| Summary: | Clipboard getAvailableTypes runs the event loop on GTK | ||
|---|---|---|---|
| Product: | [Eclipse Project] Platform | Reporter: | Veronika Irvine <veronika_irvine> |
| Component: | SWT | Assignee: | Veronika Irvine <veronika_irvine> |
| Status: | RESOLVED WONTFIX | QA Contact: | |
| Severity: | major | ||
| Priority: | P3 | CC: | billy.biggs, dcorbin, douglas.pollock, eclipse, eclipse, edoardo, gunnar, jared_burns, Michael.Valenta, mlq.eclipse, mtaylor, thatnitind, tyang, zhourj |
| Version: | 3.0 | ||
| Target Milestone: | 3.0 RC4 | ||
| Hardware: | PC | ||
| OS: | Linux-GTK | ||
| Whiteboard: | |||
|
Description
Veronika Irvine
*** Bug 40740 has been marked as a duplicate of this bug. *** *** Bug 44817 has been marked as a duplicate of this bug. *** Critical (and really a blocker) for me as I cannot debug many situations in the
editor.
Steps to reproduce:
- Run a runtime workbench.
- Set a breakpoint that will be triggered when pasting into a Java editor (e.g.
in JavaIndenter ctor)
- Paste a line in a Java Editor
-> The debug workbench starts showing a stacktrace but does not get further than
saying "pending...." on all frames.
-> Deadlock, with the main thread blocking on gtk_clipboard_wait_for_contents
while, holding a lock that the debugger is waiting for.
I will attach the vm dump, the relevant sections:
"Worker-3" prio=1 tid=0x08bdcb68 nid=0x1ae7 waiting for monitor entry
[64325000..64325714]
at org.eclipse.swt.internal.gtk.OS.gdk_pixbuf_new(Native Method)
- waiting to lock <0x5dbc85b8> (a java.lang.Class)
at org.eclipse.swt.graphics.Image.init(Image.java:745)
at org.eclipse.swt.graphics.Image.<init>(Image.java:430)
at
org.eclipse.ui.internal.progress.ProgressManager.getImage(ProgressManager.java:651)
at
org.eclipse.ui.internal.progress.AnimationManager.animateLoop(AnimationManager.java:204)
at
org.eclipse.ui.internal.progress.AnimationManager$3.run(AnimationManager.java:467)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:62)
"main" prio=1 tid=0x08052200 nid=0x1ae7 runnable [bfffa000..bfffcdc8]
at
org.eclipse.swt.internal.gtk.OS.gtk_clipboard_wait_for_contents(Native Method)
- locked <0x5dbc85b8> (a java.lang.Class)
at org.eclipse.swt.dnd.Clipboard._getAvailableTypes(Clipboard.java:337)
at org.eclipse.swt.dnd.Clipboard.getAvailableTypes(Clipboard.java:282)
at
org.eclipse.jdt.internal.ui.refactoring.reorg.PasteAction.canOperateOn(PasteAction.java:126)
at
org.eclipse.jdt.internal.ui.refactoring.reorg.PasteAction.selectionChanged(PasteAction.java:115)
at
org.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchSelectionChanged(SelectionDispatchAction.java:184)
at
org.eclipse.jdt.ui.actions.SelectionDispatchAction.update(SelectionDispatchAction.java:112)
at
org.eclipse.jdt.internal.ui.refactoring.reorg.PasteAction.<init>(PasteAction.java:106)
at org.eclipse.jdt.ui.actions.CCPActionGroup.<init>(CCPActionGroup.java:80)
at org.eclipse.jdt.ui.actions.CCPActionGroup.<init>(CCPActionGroup.java:74)
at
org.eclipse.jdt.internal.ui.javaeditor.JavaOutlinePage.createControl(JavaOutlinePage.java:1028)
at
org.eclipse.ui.views.contentoutline.ContentOutline.doCreatePage(ContentOutline.java:125)
at org.eclipse.ui.part.PageBookView.createPage(PageBookView.java:306)
at org.eclipse.ui.part.PageBookView.partActivated(PageBookView.java:561)
at org.eclipse.ui.internal.PartListenerList$1.run(PartListenerList.java:49)
at
org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:1143)
at org.eclipse.core.runtime.Platform.run(Platform.java:461)
at
org.eclipse.ui.internal.PartListenerList.firePartActivated(PartListenerList.java:47)
at
org.eclipse.ui.internal.WorkbenchPage.firePartActivated(WorkbenchPage.java:1205)
at
org.eclipse.ui.internal.WorkbenchPage.setActivePart(WorkbenchPage.java:2520)
at
org.eclipse.ui.internal.WorkbenchPage.requestActivation(WorkbenchPage.java:2242)
at org.eclipse.ui.internal.PartPane.requestActivation(PartPane.java:334)
at org.eclipse.ui.internal.EditorPane.requestActivation(EditorPane.java:136)
at org.eclipse.ui.internal.PartPane.handleEvent(PartPane.java:314)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:962)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:986)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:967)
at org.eclipse.swt.widgets.Shell.setActiveControl(Shell.java:850)
at org.eclipse.swt.widgets.Control.sendFocusEvent(Control.java:2141)
at org.eclipse.swt.widgets.Control.gtk_event_after(Control.java:1680)
at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:1218)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:2317)
at org.eclipse.swt.internal.gtk.OS.gtk_main_do_event(Native Method)
- locked <0x5dbc85b8> (a java.lang.Class)
at org.eclipse.swt.widgets.Display.eventProc(Display.java:710)
at
org.eclipse.swt.internal.gtk.OS.gtk_clipboard_wait_for_contents(Native Method)
- locked <0x5dbc85b8> (a java.lang.Class)
at org.eclipse.swt.dnd.Clipboard._getAvailableTypes(Clipboard.java:324)
at org.eclipse.swt.dnd.Clipboard.getAvailableTypes(Clipboard.java:282)
at
org.eclipse.jdt.internal.ui.refactoring.reorg.PasteAction.canOperateOn(PasteAction.java:126)
at
org.eclipse.jdt.internal.ui.refactoring.reorg.PasteAction.selectionChanged(PasteAction.java:115)
at
org.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchSelectionChanged(SelectionDispatchAction.java:184)
at
org.eclipse.jdt.ui.actions.SelectionDispatchAction.update(SelectionDispatchAction.java:112)
at
org.eclipse.jdt.internal.ui.refactoring.reorg.PasteAction.<init>(PasteAction.java:106)
at org.eclipse.jdt.ui.actions.CCPActionGroup.<init>(CCPActionGroup.java:80)
at org.eclipse.jdt.ui.actions.CCPActionGroup.<init>(CCPActionGroup.java:74)
at
org.eclipse.jdt.internal.ui.javaeditor.JavaOutlinePage.createControl(JavaOutlinePage.java:1028)
at
org.eclipse.ui.views.contentoutline.ContentOutline.doCreatePage(ContentOutline.java:125)
at org.eclipse.ui.part.PageBookView.createPage(PageBookView.java:306)
at org.eclipse.ui.part.PageBookView.partActivated(PageBookView.java:561)
at org.eclipse.ui.part.PageBookView.showBootstrapPart(PageBookView.java:676)
at org.eclipse.ui.part.PageBookView.createPartControl(PageBookView.java:371)
at
org.eclipse.ui.views.contentoutline.ContentOutline.createPartControl(ContentOutline.java:111)
at org.eclipse.ui.internal.PartPane$4.run(PartPane.java:141)
at
org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:1143)
at org.eclipse.core.runtime.Platform.run(Platform.java:461)
at org.eclipse.ui.internal.PartPane.createChildControl(PartPane.java:137)
at org.eclipse.ui.internal.ViewPane.createChildControl(ViewPane.java:211)
at org.eclipse.ui.internal.ViewFactory$2.run(ViewFactory.java:167)
at
org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:1143)
at org.eclipse.core.runtime.Platform.run(Platform.java:461)
at org.eclipse.ui.internal.ViewFactory.busyRestoreView(ViewFactory.java:98)
at org.eclipse.ui.internal.ViewFactory$1.run(ViewFactory.java:82)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:84)
at org.eclipse.ui.internal.ViewFactory.restoreView(ViewFactory.java:78)
at org.eclipse.ui.internal.Perspective.restoreState(Perspective.java:896)
at
org.eclipse.ui.internal.WorkbenchPage.setPerspective(WorkbenchPage.java:2564)
at
org.eclipse.ui.internal.WorkbenchPage.busySetPerspective(WorkbenchPage.java:649)
at org.eclipse.ui.internal.WorkbenchPage.access$8(WorkbenchPage.java:634)
at org.eclipse.ui.internal.WorkbenchPage$12.run(WorkbenchPage.java:2713)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:84)
at
org.eclipse.ui.internal.WorkbenchPage.setPerspective(WorkbenchPage.java:2711)
at org.eclipse.ui.internal.Workbench.showPerspective(Workbench.java:1691)
at
org.eclipse.debug.internal.ui.launchConfigurations.PerspectiveManager$1.run(PerspectiveManager.java:159)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
at
org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:102)
- locked <0x44df4c80> (a org.eclipse.swt.widgets.RunnableLock)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:1816)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1622)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1611)
at org.eclipse.ui.internal.Workbench.run(Workbench.java:1594)
(...)
*** Bug 47271 has been marked as a duplicate of this bug. *** Changing severity to blocker as this keeps happening on every 3rd to 10th breakpoint hit, rendering the debugging functionality virtually unusable. Is there anything you can recommend as a workaround to prevent this from happening? Other findings: - Funny enough, a hang in eclipse also seems to hang up mozilla. - Its not really a freeze, just some part of the UI locks: - views and editors can still be selected - text can be edited - the mousewheel scrolls the scrollbar, but not the view content - the main menu opens, however nothing happens upon selection - no commands get executed found a workaround for my very frequent hangs: They happened when copy-pasting inside a debugged workbench. A breakpoint is hit when pasting. The master workbench accesses the clipboard when activated, and tries to access the application that has filled the clipboard - which is the debugged workbench that is currently blocked. The workaround is to copy the pasted text from a different source, e.g. a text editor. reducing severity. I've got this a couple times in my host while I was just debugging. It just happened to me while I
was clicking on stack frames in the debug view. The first frame I selected opened the editor and
went to the current line correctly. Then I clicked on the next frame down. The editor opened, but
the line wasn't displayed (no highlight, no execution marker, etc.). At this point, my workbench is
effectively dead with the main method stuck in the DND code as reported above (but with slightly
different line numbers:
"main" prio=1 tid=0x0x8051f88 nid=0xa2c runnable [bfffa000..bfffd32c]
at org.eclipse.swt.internal.gtk.OS.gtk_clipboard_wait_for_contents(Native Method)
- locked <0x5d6c3738> (a java.lang.Class)
at org.eclipse.swt.dnd.Clipboard._getAvailableTypes(Clipboard.java:351)
at org.eclipse.swt.dnd.Clipboard.getAvailableTypes(Clipboard.java:300)
*** Bug 43995 has been marked as a duplicate of this bug. *** *** Bug 55714 has been marked as a duplicate of this bug. *** *** Bug 60136 has been marked as a duplicate of this bug. *** What missing information, if any, is blocking this bug from being fixed? What can I or others do to help solve this problem? (I'd really prefer to use GTK over Motif, but this is an show-stopper given that I cannot debug under GTK with this bug.) This bug is actively being worked on. Unfortunately, the problem is particularly nasty because it involves the event loop. We hope to have a satisfactory solution in the very near future. Excellent! I'd be happy to test or whatever else would be useful, if anything. I have a reproducible case where Eclipse hangs: 1) Have a SWT testcase which has a StyledText 2) Set the text of the StyledText to "\ucf64\ud6da\ubb4f \ud6da\ud5da\ubada" 3) Set a breakpoint at second line of StyledText#paste() 4) Run your testcase in debug mode 5) Select the string 6) Ctrl+C Ctrl+V Eclipse hangs. It stills paints propertly, expand/collapse trees, Pop-up menus, but for mostly of it, the workbench does not respond. Fixed for I20040511. Out of curiousity, what was the nature of the fix? The problem was that GTK was running the event loop until a selection event was processed. This had two negative side effects - 1) the event loop could cause some other OS interaction that would result in a crash or 2)the event loop could cause some other OS interaction that could actually eat the selection event and the call to gtk_clipboard_wait_for_contents would never return resulting in a hang. The fix was to collect all the events the OS sent and defer them until the selection event came along. The selection event is processed and then all the deferred events are processed. This strategy was also used to fix a similar bug in Shell.setVisible. *** Bug 43005 has been marked as a duplicate of this bug. *** *** Bug 44606 has been marked as a duplicate of this bug. *** Out of curiousity, will this fix bug 61697? Oops, I mean bug 61397. Added my comments to bug 61397. There were several different stack traces in that bug not all of which were related to this bug so I have not marked it as a duplicate. Is this in I20040514? I am just seeing this now with that build. Tom, the fix is in I20040514. What exactly are you seeing in this build? Hm, I had eclipse locked (ui gone) but not dead-locked (after 5 or 10 minutes, it restored itself again, not sure what the trigger was). The stack of the main thread was similar to this (this one copied from comment 3, but it was in gtk_clipboard_wait_for_contents). "main" prio=1 tid=0x08052200 nid=0x1ae7 runnable [bfffa000..bfffcdc8] at org.eclipse.swt.internal.gtk.OS.gtk_clipboard_wait_for_contents(Native Method) - locked <0x5dbc85b8> (a java.lang.Class) at org.eclipse.swt.dnd.Clipboard._getAvailableTypes(Clipboard.java:337) at org.eclipse.swt.dnd.Clipboard.getAvailableTypes(Clipboard.java:282) I am often seeing this while debugging. The UI will be stale and take a couple
of minutes to restore. Additionally, the entire UI (not just eclipse, but also
mouse handling of mozilla, KDE bar etc.) will get sluggish. A full vm dump
during such a situation follows:
Full thread dump Java HotSpot(TM) Client VM (1.4.2_04-b05 mixed mode):
"Worker-25" prio=1 tid=0x0826f228 nid=0x6d11 in Object.wait() [5a654000..5a654854]
at java.lang.Object.wait(Native Method)
at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:209)
- locked <0x45e624f0> (a org.eclipse.core.internal.jobs.WorkerPool)
at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:236)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:59)
"Worker-24" prio=1 tid=0x5c1a8bc0 nid=0x6d11 in Object.wait() [5bf01000..5bf01854]
at java.lang.Object.wait(Native Method)
at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:209)
- locked <0x45e624f0> (a org.eclipse.core.internal.jobs.WorkerPool)
at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:236)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:59)
"Worker-23" prio=1 tid=0x5a8ce810 nid=0x6d11 in Object.wait() [5b701000..5b701854]
at java.lang.Object.wait(Native Method)
at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:209)
- locked <0x45e624f0> (a org.eclipse.core.internal.jobs.WorkerPool)
at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:236)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:59)
"org.eclipse.jdt.debug: JDI Event Dispatcher" prio=1 tid=0x087918e8 nid=0x6d11
in Object.wait() [5c480000..5c480854]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:429)
at
org.eclipse.jdi.internal.connect.PacketReceiveManager.waitForPacketAvailable(PacketReceiveManager.java:168)
at
org.eclipse.jdi.internal.connect.PacketReceiveManager.getCommand(PacketReceiveManager.java:93)
- locked <0x48e32308> (a
org.eclipse.jdi.internal.connect.PacketReceiveManager)
at org.eclipse.jdi.internal.MirrorImpl.getCommandVM(MirrorImpl.java:276)
at
org.eclipse.jdi.internal.event.EventQueueImpl.remove(EventQueueImpl.java:63)
at
org.eclipse.jdi.internal.event.EventQueueImpl.remove(EventQueueImpl.java:48)
at
org.eclipse.jdt.internal.debug.core.EventDispatcher.run(EventDispatcher.java:213)
at java.lang.Thread.run(Thread.java:534)
"Packet Send Manager" prio=1 tid=0x08741fd8 nid=0x6d11 in Object.wait()
[5ba07000..5ba07854]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:429)
at
org.eclipse.jdi.internal.connect.PacketSendManager.sendAvailablePackets(PacketSendManager.java:94)
- locked <0x48e32450> (a org.eclipse.jdi.internal.connect.PacketSendManager)
at
org.eclipse.jdi.internal.connect.PacketSendManager.run(PacketSendManager.java:54)
at java.lang.Thread.run(Thread.java:534)
"Packet Receive Manager" prio=1 tid=0x0878f370 nid=0x6d11 runnable
[5b680000..5b680854]
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:129)
at java.net.SocketInputStream.read(SocketInputStream.java:182)
at java.io.DataInputStream.readInt(DataInputStream.java:443)
at org.eclipse.jdi.internal.jdwp.JdwpPacket.read(JdwpPacket.java:124)
at
org.eclipse.jdi.internal.connect.PacketReceiveManager.readAvailablePacket(PacketReceiveManager.java:224)
at
org.eclipse.jdi.internal.connect.PacketReceiveManager.run(PacketReceiveManager.java:70)
at java.lang.Thread.run(Thread.java:534)
"Console Polling Thread" prio=1 tid=0x5a8ce9c0 nid=0x6d11
sleeping[5aab6000..5aab6854]
at java.lang.Thread.sleep(Native Method)
at
org.eclipse.debug.internal.ui.views.console.ConsoleDocumentPartitioner.pollAndSleep(ConsoleDocumentPartitioner.java:565)
at
org.eclipse.debug.internal.ui.views.console.ConsoleDocumentPartitioner$1.run(ConsoleDocumentPartitioner.java:549)
at java.lang.Thread.run(Thread.java:534)
"Input Stream Monitor" prio=1 tid=0x08791620 nid=0x6d11 in Object.wait()
[5cfba000..5cfba854]
at java.lang.Object.wait(Native Method)
- waiting on <0x48e325e0> (a java.lang.Object)
at java.lang.Object.wait(Object.java:429)
at
org.eclipse.debug.internal.core.InputStreamMonitor.writeNext(InputStreamMonitor.java:124)
- locked <0x48e325e0> (a java.lang.Object)
at
org.eclipse.debug.internal.core.InputStreamMonitor.write(InputStreamMonitor.java:99)
at
org.eclipse.debug.internal.core.InputStreamMonitor$1.run(InputStreamMonitor.java:75)
at java.lang.Thread.run(Thread.java:534)
"Output Stream Monitor" prio=1 tid=0x08796248 nid=0x6d11 runnable
[5d03b000..5d03b854]
at java.io.FileInputStream.readBytes(Native Method)
at java.io.FileInputStream.read(FileInputStream.java:177)
at
org.eclipse.debug.internal.core.OutputStreamMonitor.read(OutputStreamMonitor.java:132)
at
org.eclipse.debug.internal.core.OutputStreamMonitor.access$1(OutputStreamMonitor.java:124)
at
org.eclipse.debug.internal.core.OutputStreamMonitor$1.run(OutputStreamMonitor.java:177)
at java.lang.Thread.run(Thread.java:534)
"Output Stream Monitor" prio=1 tid=0x08795e30 nid=0x6d11 runnable
[5ba88000..5ba88854]
at java.io.FileInputStream.readBytes(Native Method)
at java.io.FileInputStream.read(FileInputStream.java:194)
at java.io.BufferedInputStream.read1(BufferedInputStream.java:220)
at java.io.BufferedInputStream.read(BufferedInputStream.java:277)
- locked <0x48e36730> (a java.io.BufferedInputStream)
at java.io.FilterInputStream.read(FilterInputStream.java:90)
at
org.eclipse.debug.internal.core.OutputStreamMonitor.read(OutputStreamMonitor.java:132)
at
org.eclipse.debug.internal.core.OutputStreamMonitor.access$1(OutputStreamMonitor.java:124)
at
org.eclipse.debug.internal.core.OutputStreamMonitor$1.run(OutputStreamMonitor.java:177)
at java.lang.Thread.run(Thread.java:534)
"process reaper" daemon prio=1 tid=0x086597a8 nid=0x6d11 runnable
[5bb8a000..5bb8a854]
at java.lang.UNIXProcess.waitForProcessExit(Native Method)
at java.lang.UNIXProcess.access$1500(UNIXProcess.java:20)
at java.lang.UNIXProcess$2.run(UNIXProcess.java:127)
"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=1 tid=0x5abda1b8
nid=0x6d11 in Object.wait() [5b884000..5b884854]
at java.lang.Object.wait(Native Method)
at
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:172)
- locked <0x48db8500> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)
"Worker-21" prio=1 tid=0x5c1b8608 nid=0x6d11 in Object.wait() [5bf82000..5bf82854]
at java.lang.Object.wait(Native Method)
at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:209)
- locked <0x45e624f0> (a org.eclipse.core.internal.jobs.WorkerPool)
at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:236)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:59)
"Worker-20" prio=1 tid=0x5bd2a5b8 nid=0x6d11 in Object.wait() [5b986000..5b986854]
at java.lang.Object.wait(Native Method)
- waiting on <0x48e367c8> (a java.lang.UNIXProcess)
at java.lang.Object.wait(Object.java:429)
at java.lang.UNIXProcess.waitFor(UNIXProcess.java:160)
- locked <0x48e367c8> (a java.lang.UNIXProcess)
at
org.eclipse.debug.core.model.RuntimeProcess$ProcessMonitorJob.run(RuntimeProcess.java:362)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:66)
"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=1 tid=0x5ab57158
nid=0x6d11 in Object.wait() [5b782000..5b782854]
at java.lang.Object.wait(Native Method)
at
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:172)
- locked <0x48c23d18> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)
"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=1 tid=0x5c105a20
nid=0x6d11 in Object.wait() [5bb09000..5bb09854]
at java.lang.Object.wait(Native Method)
at
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:172)
- locked <0x48aceb08> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)
"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=1 tid=0x5c30d9c0
nid=0x6d11 in Object.wait() [5b0e6000..5b0e6854]
at java.lang.Object.wait(Native Method)
at
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:172)
- locked <0x483d6df0> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)
"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=1 tid=0x5c00fcd0
nid=0x6d11 in Object.wait() [5b905000..5b905854]
at java.lang.Object.wait(Native Method)
at
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:172)
- locked <0x48145790> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)
"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=1 tid=0x5bde5130
nid=0x6d11 in Object.wait() [5d0bc000..5d0bc854]
at java.lang.Object.wait(Native Method)
at
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:172)
- locked <0x480f1cb8> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)
"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=1 tid=0x5af11b40
nid=0x6d11 in Object.wait() [5b803000..5b803854]
at java.lang.Object.wait(Native Method)
at
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:172)
- locked <0x48087498> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)
"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=1 tid=0x5abd2250
nid=0x6d11 in Object.wait() [5bc0b000..5bc0b854]
at java.lang.Object.wait(Native Method)
at
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:172)
- locked <0x47aca100> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)
"Thread-4" prio=1 tid=0x0848d9b0 nid=0x6d11 runnable [5ceb8000..5ceb8854]
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:129)
at com.jcraft.jsch.IO.getByte(Unknown Source)
at com.jcraft.jsch.Session.read(Unknown Source)
at com.jcraft.jsch.Session.run(Unknown Source)
at java.lang.Thread.run(Thread.java:534)
"Java indexing" daemon prio=1 tid=0x599fee10 nid=0x6d11 in Object.wait()
[5a5d3000..5a5d3854]
at java.lang.Object.wait(Native Method)
- waiting on <0x4648aa18> (a
org.eclipse.jdt.internal.core.search.indexing.IndexManager)
at java.lang.Object.wait(Object.java:429)
at
org.eclipse.jdt.internal.core.search.processing.JobManager.run(JobManager.java:344)
- locked <0x4648aa18> (a
org.eclipse.jdt.internal.core.search.indexing.IndexManager)
at java.lang.Thread.run(Thread.java:534)
"Thread-1" prio=1 tid=0x599438e0 nid=0x6d11 in Object.wait() [59b1d000..59b1d854]
at java.lang.Object.wait(Native Method)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111)
- locked <0x4648aaa0> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127)
at
org.eclipse.jface.action.ActionContributionItem$ImageCache$ReferenceCleanerThread.run(ActionContributionItem.java:196)
"Thread-0" prio=1 tid=0x59943648 nid=0x6d11 in Object.wait() [58c33000..58c33854]
at java.lang.Object.wait(Native Method)
- waiting on <0x4648ab10> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111)
- locked <0x4648ab10> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127)
at
org.eclipse.jface.action.ActionContributionItem$ImageCache$ReferenceCleanerThread.run(ActionContributionItem.java:196)
"Start Level Event Dispatcher" daemon prio=1 tid=0x58483b78 nid=0x6d11 in
Object.wait() [58b9d000..58b9d854]
at java.lang.Object.wait(Native Method)
- waiting on <0x45a70060> (a
org.eclipse.osgi.framework.eventmgr.EventThread)
at java.lang.Object.wait(Object.java:429)
at
org.eclipse.osgi.framework.eventmgr.EventThread.getNextEvent(EventThread.java:162)
- locked <0x45a70060> (a org.eclipse.osgi.framework.eventmgr.EventThread)
at org.eclipse.osgi.framework.eventmgr.EventThread.run(EventThread.java:100)
"Framework Event Dispatcher" daemon prio=1 tid=0x58429dc0 nid=0x6d11 in
Object.wait() [58b1c000..58b1c854]
at java.lang.Object.wait(Native Method)
- waiting on <0x45a70240> (a
org.eclipse.osgi.framework.eventmgr.EventThread)
at java.lang.Object.wait(Object.java:429)
at
org.eclipse.osgi.framework.eventmgr.EventThread.getNextEvent(EventThread.java:162)
- locked <0x45a70240> (a org.eclipse.osgi.framework.eventmgr.EventThread)
at org.eclipse.osgi.framework.eventmgr.EventThread.run(EventThread.java:100)
"Signal Dispatcher" daemon prio=1 tid=0x58403438 nid=0x6d11 waiting on condition
[0..0]
"Finalizer" daemon prio=1 tid=0x08088710 nid=0x6d11 in Object.wait()
[583f5000..583f5854]
at java.lang.Object.wait(Native Method)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111)
- locked <0x45a70368> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127)
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)
"Reference Handler" daemon prio=1 tid=0x08087b20 nid=0x6d11 in Object.wait()
[58374000..58374854]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:429)
at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:115)
- locked <0x45a700b0> (a java.lang.ref.Reference$Lock)
"main" prio=1 tid=0x08052350 nid=0x6d11 runnable [bfffa000..bfffc338]
at
org.eclipse.swt.internal.gtk.OS.gtk_clipboard_wait_for_contents(Native Method)
- locked <0x54561db0> (a java.lang.Class)
at
org.eclipse.swt.dnd.Clipboard.gtk_clipboard_wait_for_contents(Clipboard.java:385)
at org.eclipse.swt.dnd.Clipboard.getContents(Clipboard.java:191)
at
org.eclipse.jdt.internal.ui.javaeditor.ClipboardOperationAction.doPasteWithImportsOperation(ClipboardOperationAction.java:388)
at
org.eclipse.jdt.internal.ui.javaeditor.ClipboardOperationAction.internalDoOperation(ClipboardOperationAction.java:244)
at
org.eclipse.jdt.internal.ui.javaeditor.ClipboardOperationAction$1.run(ClipboardOperationAction.java:224)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69)
at
org.eclipse.jdt.internal.ui.javaeditor.ClipboardOperationAction.run(ClipboardOperationAction.java:222)
at org.eclipse.jface.action.Action.runWithEvent(Action.java:881)
at org.eclipse.ui.commands.ActionHandler.execute(ActionHandler.java:141)
at org.eclipse.ui.internal.commands.Command.execute(Command.java:132)
at
org.eclipse.ui.internal.keys.WorkbenchKeyboard.executeCommand(WorkbenchKeyboard.java:469)
at
org.eclipse.ui.internal.keys.WorkbenchKeyboard.press(WorkbenchKeyboard.java:887)
at
org.eclipse.ui.internal.keys.WorkbenchKeyboard.processKeyEvent(WorkbenchKeyboard.java:928)
at
org.eclipse.ui.internal.keys.WorkbenchKeyboard.filterKeySequenceBindings(WorkbenchKeyboard.java:546)
at
org.eclipse.ui.internal.keys.WorkbenchKeyboard.access$2(WorkbenchKeyboard.java:494)
at
org.eclipse.ui.internal.keys.WorkbenchKeyboard$1.handleEvent(WorkbenchKeyboard.java:259)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82)
at org.eclipse.swt.widgets.Display.filterEvent(Display.java:992)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:943)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:968)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:953)
at org.eclipse.swt.widgets.Control.sendKeyEvent(Control.java:2293)
at org.eclipse.swt.widgets.Control.gtk_key_press_event(Control.java:1793)
at org.eclipse.swt.widgets.Composite.gtk_key_press_event(Composite.java:448)
at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:1194)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:3040)
at org.eclipse.swt.internal.gtk.OS.gtk_main_do_event(Native Method)
at org.eclipse.swt.widgets.Display.eventProc(Display.java:839)
at org.eclipse.swt.internal.gtk.OS.gtk_main_iteration(Native Method)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2252)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1363)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1334)
at
org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:253)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:141)
at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:97)
at
org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:307)
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:256)
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:127)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.eclipse.core.launcher.Main.basicRun(Main.java:185)
at org.eclipse.core.launcher.Main.run(Main.java:638)
at org.eclipse.core.launcher.Main.main(Main.java:622)
"VM Thread" prio=1 tid=0x08086800 nid=0x6d11 runnable
"VM Periodic Task Thread" prio=1 tid=0x58405ca0 nid=0x6d11 waiting on condition
"Suspend Checker Thread" prio=1 tid=0x58402b20 nid=0x6d11 runnable
I've seen this too. I don't have stack traces, but I'll try to get them next time I see this. Long pauses in the user interface while doing things like opening editors. If it weren't so late and wasn't unsure that the pauses I'm seeing are caused by this, I would say that this is a stop-ship for M9. I'm seeing pauses upwards of one minute while opening editors; this happens frequently, but not consistently. During on my many lock-ups....
Full thread dump Java HotSpot(TM) Client VM (1.4.2_04-b05 mixed mode):
"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=1 tid=0x08496548
nid=0x7405 in Object.wait() [47603000..4760389c]
at java.lang.Object.wait(Native Method)
at
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:172)
- locked <0x52c8da98> (a
org.eclipse.jface.text.reconciler.DirtyRegionQueue)
"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=1 tid=0x089f0010
nid=0x7405 in Object.wait() [47480000..4748089c]
at java.lang.Object.wait(Native Method)
at
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:172)
- locked <0x5286e970> (a
org.eclipse.jface.text.reconciler.DirtyRegionQueue)
"Worker-18" prio=1 tid=0x46ce2cc8 nid=0x7405 in Object.wait()
[44a8a000..44a8a89c]
at java.lang.Object.wait(Native Method)
- waiting on <0x50b90368> (a org.eclipse.core.internal.jobs.WorkerPool)
at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:209)
- locked <0x50b90368> (a org.eclipse.core.internal.jobs.WorkerPool)
at
org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:236)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:59)
"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=1 tid=0x0891be88
nid=0x7405 in Object.wait() [46128000..4612889c]
at java.lang.Object.wait(Native Method)
at
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:172)
- locked <0x5276dca0> (a
org.eclipse.jface.text.reconciler.DirtyRegionQueue)
"Java indexing" daemon prio=1 tid=0x08700d00 nid=0x7405 in Object.wait()
[461a9000..461a989c]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:429)
at
org.eclipse.jdt.internal.core.search.processing.JobManager.run(JobManager.java:344)
- locked <0x51844e70> (a
org.eclipse.jdt.internal.core.search.indexing.IndexManager)
at java.lang.Thread.run(Thread.java:534)
"Thread-1" prio=1 tid=0x083ecd48 nid=0x7405 in Object.wait()
[45a80000..45a8089c]
at java.lang.Object.wait(Native Method)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111)
- locked <0x5149a238> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127)
at
org.eclipse.jface.action.ActionContributionItem$ImageCache$ReferenceCleanerThread.run(ActionContributionItem.java:196)
"Thread-0" prio=1 tid=0x083eca90 nid=0x7405 in Object.wait()
[459ff000..459ff89c]
at java.lang.Object.wait(Native Method)
- waiting on <0x5149a2a8> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111)
- locked <0x5149a2a8> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127)
at
org.eclipse.jface.action.ActionContributionItem$ImageCache$ReferenceCleanerThread.run(ActionContributionItem.java:196)
"Start Level Event Dispatcher" daemon prio=1 tid=0x082444e0 nid=0x7405 in
Object.wait() [44c22000..44c2289c]
at java.lang.Object.wait(Native Method)
- waiting on <0x50a295e0> (a
org.eclipse.osgi.framework.eventmgr.EventThread)
at java.lang.Object.wait(Object.java:429)
at
org.eclipse.osgi.framework.eventmgr.EventThread.getNextEvent(EventThread.java:162)
- locked <0x50a295e0> (a
org.eclipse.osgi.framework.eventmgr.EventThread)
at
org.eclipse.osgi.framework.eventmgr.EventThread.run(EventThread.java:100)
"Framework Event Dispatcher" daemon prio=1 tid=0x08245ac0 nid=0x7405 in
Object.wait() [44ba1000..44ba189c]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:429)
at
org.eclipse.osgi.framework.eventmgr.EventThread.getNextEvent(EventThread.java:162)
- locked <0x50a296c8> (a
org.eclipse.osgi.framework.eventmgr.EventThread)
at
org.eclipse.osgi.framework.eventmgr.EventThread.run(EventThread.java:100)
"Signal Dispatcher" daemon prio=1 tid=0x0808ddc0 nid=0x7405 waiting on
condition [0..0]
"Finalizer" daemon prio=1 tid=0x0808a618 nid=0x7405 in Object.wait()
[44718000..4471889c]
at java.lang.Object.wait(Native Method)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111)
- locked <0x509ba268> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127)
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)
"Reference Handler" daemon prio=1 tid=0x08088b80 nid=0x7405 in Object.wait()
[44697000..4469789c]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:429)
at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:115)
- locked <0x509ba2d0> (a java.lang.ref.Reference$Lock)
"main" prio=1 tid=0x08052bf0 nid=0x7405 runnable [bfffc000..bfffce78]
at
org.eclipse.swt.internal.gtk.OS.gtk_clipboard_wait_for_contents(Native Method)
- locked <0x5f994868> (a java.lang.Class)
at
org.eclipse.swt.dnd.Clipboard.gtk_clipboard_wait_for_contents(Clipboard.java:385)
at org.eclipse.swt.dnd.Clipboard._getAvailableTypes(Clipboard.java:351)
at org.eclipse.swt.dnd.Clipboard.getAvailableTypes(Clipboard.java:300)
at
org.eclipse.jdt.internal.ui.refactoring.reorg.PasteAction.canOperateOn(PasteAction.java:129)
at
org.eclipse.jdt.internal.ui.refactoring.reorg.PasteAction.selectionChanged(PasteAction.java:118)
at
org.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchSelectionChanged(SelectionDispatchAction.java:200)
at
org.eclipse.jdt.ui.actions.SelectionDispatchAction.selectionChanged(SelectionDispatchAction.java:195)
at org.eclipse.jface.viewers.Viewer$2.run(Viewer.java:159)
at
org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:608)
at org.eclipse.core.runtime.Platform.run(Platform.java:758)
at
org.eclipse.jface.viewers.Viewer.fireSelectionChanged(Viewer.java:157)
at
org.eclipse.jface.viewers.StructuredViewer.updateSelection(StructuredViewer.java:1388)
at
org.eclipse.jface.viewers.StructuredViewer.handleSelect(StructuredViewer.java:694)
at
org.eclipse.jface.viewers.StructuredViewer$4.widgetSelected(StructuredViewer.java:720)
at
org.eclipse.jface.util.OpenStrategy.fireSelectionEvent(OpenStrategy.java:180)
at org.eclipse.jface.util.OpenStrategy.access$3(OpenStrategy.java:175)
at
org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrategy.java:324)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:944)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:2542)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2253)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1363)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1334)
at
org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:253)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:141)
at
org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:97)
at
org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:307)
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:256)
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:127)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.eclipse.core.launcher.Main.basicRun(Main.java:185)
at org.eclipse.core.launcher.Main.run(Main.java:638)
at org.eclipse.core.launcher.Main.main(Main.java:622)
"VM Thread" prio=1 tid=0x08087860 nid=0x7405 runnable
"VM Periodic Task Thread" prio=1 tid=0x080905b8 nid=0x7405 waiting on condition
"Suspend Checker Thread" prio=1 tid=0x0808d3f0 nid=0x7405 runnable
bash-2.05b$
I put a hack in Display in the method that plays back GDK events, and then sat around trying to reproduce this bug. Eventually, I got it by switching to a different desktop, fiddling around, and then switching back. Eclipse took a not insignificant amount of time to repaint. These four lines appeared immediately after the window repainted. The number is the number of events being replayed.... Playing back GDK events: 1108 Playing back GDK events: 1095 Playing back GDK events: 1096 Playing back GDK events: 1088 I just reproduce again with the hack to remove the eating of events in the clipboard. I got the following: Playing back GDK events: 327 Playing back GDK events: 194 Playing back GDK events: 25 Playing back GDK events: 13 It was with the same technique of switching away and switching back to the window. Just a sec, maybe I didn't have the patch. Ignore comment #30 FWIW, bug 63481 shows that Clipboard getAvailableTypes runs an event loop on Motif as well. I got this in M9, though I have been using M9 since it was released and this is the only problem of this type that I've encountered. Full thread dump Java HotSpot(TM) Client VM (1.4.2-b28 mixed mode): "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=1 tid=0x08b80d48 nid=0x362f in Object.wait() [bb9ff000..bb9ff8d0] at java.lang.Object.wait(Native Method) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:172) - locked <0x49531170> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=1 tid=0x08b25d90 nid=0x3623 in Object.wait() [bbbff000..bbbff8d0] at java.lang.Object.wait(Native Method) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:172) - locked <0x494062f0> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) "Worker-13" prio=1 tid=0x08afb740 nid=0x3525 in Object.wait() [bbdff000..bbdff8d0] at java.lang.Object.wait(Native Method) at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:209) - locked <0x470a49a0> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:236) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:59) "Worker-12" prio=1 tid=0x6ae9edc8 nid=0x351d in Object.wait() [bbfff000..bbfff8d0] at java.lang.Object.wait(Native Method) at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:209) - locked <0x470a49a0> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:236) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:59) "org.eclipse.jdt.debug: JDI Event Dispatcher" prio=1 tid=0x08a6f560 nid=0x340d in Object.wait() [bcdff000..bcdff8d0] at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java:429) at org.eclipse.jdi.internal.connect.PacketReceiveManager.waitForPacketAvailable(PacketReceiveManager.java:168) at org.eclipse.jdi.internal.connect.PacketReceiveManager.getCommand(PacketReceiveManager.java:93) - locked <0x49185c90> (a org.eclipse.jdi.internal.connect.PacketReceiveManager) at org.eclipse.jdi.internal.MirrorImpl.getCommandVM(MirrorImpl.java:276) at org.eclipse.jdi.internal.event.EventQueueImpl.remove(EventQueueImpl.java:63) at org.eclipse.jdi.internal.event.EventQueueImpl.remove(EventQueueImpl.java:48) at org.eclipse.jdt.internal.debug.core.EventDispatcher.run(EventDispatcher.java:213) at java.lang.Thread.run(Thread.java:534) "Packet Send Manager" prio=1 tid=0x08a38120 nid=0x340b in Object.wait() [bc9ff000..bc9ff8d0] at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java:429) at org.eclipse.jdi.internal.connect.PacketSendManager.sendAvailablePackets(PacketSendManager.java:94) - locked <0x49185e38> (a org.eclipse.jdi.internal.connect.PacketSendManager) at org.eclipse.jdi.internal.connect.PacketSendManager.run(PacketSendManager.java:54) at java.lang.Thread.run(Thread.java:534) "Packet Receive Manager" prio=1 tid=0x08682e40 nid=0x340a runnable [bcbff000..bcbff8d0] at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(SocketInputStream.java:129) at java.net.SocketInputStream.read(SocketInputStream.java:182) at java.io.DataInputStream.readInt(DataInputStream.java:443) at org.eclipse.jdi.internal.jdwp.JdwpPacket.read(JdwpPacket.java:124) at org.eclipse.jdi.internal.connect.PacketReceiveManager.readAvailablePacket(PacketReceiveManager.java:224) at org.eclipse.jdi.internal.connect.PacketReceiveManager.run(PacketReceiveManager.java:70) at java.lang.Thread.run(Thread.java:534) "Console Polling Thread" prio=1 tid=0x08a71168 nid=0x3406 waiting on condition [bcfff000..bcfff8d0] at java.lang.Thread.sleep(Native Method) at org.eclipse.debug.internal.ui.views.console.ConsoleDocumentPartitioner.pollAndSleep(ConsoleDocumentPartitioner.java:565) at org.eclipse.debug.internal.ui.views.console.ConsoleDocumentPartitioner$1.run(ConsoleDocumentPartitioner.java:549) at java.lang.Thread.run(Thread.java:534) "Input Stream Monitor" prio=1 tid=0x08a70f38 nid=0x3401 in Object.wait() [bd3ff000..bd3ff8d0] at java.lang.Object.wait(Native Method) - waiting on <0x49185fc8> (a java.lang.Object) at java.lang.Object.wait(Object.java:429) at org.eclipse.debug.internal.core.InputStreamMonitor.writeNext(InputStreamMonitor.java:124) - locked <0x49185fc8> (a java.lang.Object) at org.eclipse.debug.internal.core.InputStreamMonitor.write(InputStreamMonitor.java:99) at org.eclipse.debug.internal.core.InputStreamMonitor$1.run(InputStreamMonitor.java:75) at java.lang.Thread.run(Thread.java:534) "Output Stream Monitor" prio=1 tid=0x08a70dd8 nid=0x3400 runnable [bd5ff000..bd5ff8d0] at java.io.FileInputStream.readBytes(Native Method) at java.io.FileInputStream.read(FileInputStream.java:177) at org.eclipse.debug.internal.core.OutputStreamMonitor.read(OutputStreamMonitor.java:132) at org.eclipse.debug.internal.core.OutputStreamMonitor.access$1(OutputStreamMonitor.java:124) at org.eclipse.debug.internal.core.OutputStreamMonitor$1.run(OutputStreamMonitor.java:177) at java.lang.Thread.run(Thread.java:534) "Output Stream Monitor" prio=1 tid=0x08a72bf0 nid=0x33ff runnable [bd9ff000..bd9ff8d0] at java.io.FileInputStream.readBytes(Native Method) at java.io.FileInputStream.read(FileInputStream.java:194) at java.io.BufferedInputStream.read1(BufferedInputStream.java:220) at java.io.BufferedInputStream.read(BufferedInputStream.java:277) - locked <0x4918a118> (a java.io.BufferedInputStream) at java.io.FilterInputStream.read(FilterInputStream.java:90) at org.eclipse.debug.internal.core.OutputStreamMonitor.read(OutputStreamMonitor.java:132) at org.eclipse.debug.internal.core.OutputStreamMonitor.access$1(OutputStreamMonitor.java:124) at org.eclipse.debug.internal.core.OutputStreamMonitor$1.run(OutputStreamMonitor.java:177) at java.lang.Thread.run(Thread.java:534) "process reaper" daemon prio=1 tid=0x08a70ad0 nid=0x33fd runnable [be3ff000..be3ff8d0] at java.lang.UNIXProcess.waitForProcessExit(Native Method) at java.lang.UNIXProcess.access$1500(UNIXProcess.java:20) at java.lang.UNIXProcess$2.run(UNIXProcess.java:127) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=1 tid=0x0857ef20 nid=0x33d4 in Object.wait() [bc3ff000..bc3ff8d0] at java.lang.Object.wait(Native Method) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:172) - locked <0x4910aca8> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) "Worker-11" prio=1 tid=0x08a6abf0 nid=0x33d3 in Object.wait() [bd1ff000..bd1ff8d0] at java.lang.Object.wait(Native Method) at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:209) - locked <0x470a49a0> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:236) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:59) "Worker-10" prio=1 tid=0x08a697d0 nid=0x33d2 in Object.wait() [be9ff000..be9ff8d0] at java.lang.Object.wait(Native Method) at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:209) - locked <0x470a49a0> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:236) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:59) "Worker-9" prio=1 tid=0x6a95ea48 nid=0x3216 in Object.wait() [bc5ff000..bc5ff8d0] at java.lang.Object.wait(Native Method) - waiting on <0x4918a1b0> (a java.lang.UNIXProcess) at java.lang.Object.wait(Object.java:429) at java.lang.UNIXProcess.waitFor(UNIXProcess.java:160) - locked <0x4918a1b0> (a java.lang.UNIXProcess) at org.eclipse.debug.core.model.RuntimeProcess$ProcessMonitorJob.run(RuntimeProcess.java:362) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:66) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=1 tid=0x089acfc0 nid=0x319d in Object.wait() [bc7ff000..bc7ff8d0] at java.lang.Object.wait(Native Method) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:172) - locked <0x48f5b7e8> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=1 tid=0x088a3e78 nid=0x2d19 in Object.wait() [bc1ff000..bc1ff8d0] at java.lang.Object.wait(Native Method) - waiting on <0x48ca3ad8> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:172) - locked <0x48ca3ad8> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=1 tid=0x0893cdd8 nid=0x2ced in Object.wait() [bdbff000..bdbff8d0] at java.lang.Object.wait(Native Method) - waiting on <0x48be0298> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:172) - locked <0x48be0298> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) "Worker-3" prio=1 tid=0x086af240 nid=0x2c39 in Object.wait() [bd7ff000..bd7ff8d0] at java.lang.Object.wait(Native Method) at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:209) - locked <0x470a49a0> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:236) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:59) "Java indexing" daemon prio=1 tid=0x084db320 nid=0x2c32 in Object.wait() [bddff000..bddff8d0] at java.lang.Object.wait(Native Method) - waiting on <0x473bf1a0> (a org.eclipse.jdt.internal.core.search.indexing.IndexManager) at java.lang.Object.wait(Object.java:429) at org.eclipse.jdt.internal.core.search.processing.JobManager.run(JobManager.java:344) - locked <0x473bf1a0> (a org.eclipse.jdt.internal.core.search.indexing.IndexManager) at java.lang.Thread.run(Thread.java:534) "Thread-1" prio=1 tid=0x081917a0 nid=0x2c31 in Object.wait() [bdfff000..bdfff8d0] at java.lang.Object.wait(Native Method) - waiting on <0x47340798> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111) - locked <0x47340798> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127) at org.eclipse.jface.action.ActionContributionItem$ImageCache$ReferenceCleanerThread.run(ActionContributionItem.java:196) "Thread-0" prio=1 tid=0x0818fbe8 nid=0x2c30 in Object.wait() [be1ff000..be1ff8d0] at java.lang.Object.wait(Native Method) - waiting on <0x47340808> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111) - locked <0x47340808> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127) at org.eclipse.jface.action.ActionContributionItem$ImageCache$ReferenceCleanerThread.run(ActionContributionItem.java:196) "Start Level Event Dispatcher" daemon prio=1 tid=0x08150ce0 nid=0x2c23 in Object.wait() [be5ff000..be5ff8d0] at java.lang.Object.wait(Native Method) - waiting on <0x46f38ed8> (a org.eclipse.osgi.framework.eventmgr.EventThread) at java.lang.Object.wait(Object.java:429) at org.eclipse.osgi.framework.eventmgr.EventThread.getNextEvent(EventThread.java:162) - locked <0x46f38ed8> (a org.eclipse.osgi.framework.eventmgr.EventThread) at org.eclipse.osgi.framework.eventmgr.EventThread.run(EventThread.java:100) "Framework Event Dispatcher" daemon prio=1 tid=0x08246300 nid=0x2c22 in Object.wait() [be7ff000..be7ff8d0] at java.lang.Object.wait(Native Method) - waiting on <0x46f38f28> (a org.eclipse.osgi.framework.eventmgr.EventThread) at java.lang.Object.wait(Object.java:429) at org.eclipse.osgi.framework.eventmgr.EventThread.getNextEvent(EventThread.java:162) - locked <0x46f38f28> (a org.eclipse.osgi.framework.eventmgr.EventThread) at org.eclipse.osgi.framework.eventmgr.EventThread.run(EventThread.java:100) "Signal Dispatcher" daemon prio=1 tid=0x0808f700 nid=0x2c1d waiting on condition [0..0] "Finalizer" daemon prio=1 tid=0x0808b210 nid=0x2c1b in Object.wait() [bf3ff000..bf3ff8d0] at java.lang.Object.wait(Native Method) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111) - locked <0x46ec7da8> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127) at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159) "Reference Handler" daemon prio=1 tid=0x0808a658 nid=0x2c1a in Object.wait() [bf5ff000..bf5ff8d0] at java.lang.Object.wait(Native Method) - waiting on <0x46ec7e10> (a java.lang.ref.Reference$Lock) at java.lang.Object.wait(Object.java:429) at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:115) - locked <0x46ec7e10> (a java.lang.ref.Reference$Lock) "main" prio=1 tid=0x08052758 nid=0x2c16 runnable [bfffc000..bfffd4b8] at org.eclipse.swt.internal.gtk.OS.gtk_clipboard_wait_for_contents(Native Method) - locked <0x64af10e8> (a java.lang.Class) at org.eclipse.swt.dnd.Clipboard.gtk_clipboard_wait_for_contents(Clipboard.java:385) at org.eclipse.swt.dnd.Clipboard._getAvailableTypes(Clipboard.java:351) at org.eclipse.swt.dnd.Clipboard.getAvailableTypes(Clipboard.java:300) at org.eclipse.jdt.internal.ui.refactoring.reorg.PasteAction.canOperateOn(PasteAction.java:129) at org.eclipse.jdt.internal.ui.refactoring.reorg.PasteAction.selectionChanged(PasteAction.java:118) at org.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchSelectionChanged(SelectionDispatchAction.java:200) at org.eclipse.jdt.ui.actions.SelectionDispatchAction.selectionChanged(SelectionDispatchAction.java:195) at org.eclipse.jface.viewers.Viewer$2.run(Viewer.java:159) at org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:608) at org.eclipse.core.runtime.Platform.run(Platform.java:758) at org.eclipse.jface.viewers.Viewer.fireSelectionChanged(Viewer.java:157) at org.eclipse.jface.viewers.StructuredViewer.updateSelection(StructuredViewer.java:1388) at org.eclipse.jface.viewers.StructuredViewer.setSelection(StructuredViewer.java:1090) at org.eclipse.jdt.internal.ui.browsing.PackageViewerWrapper.setSelection(PackageViewerWrapper.java:137) at org.eclipse.jdt.internal.ui.browsing.JavaBrowsingPart.setSelection(JavaBrowsingPart.java:1200) at org.eclipse.jdt.internal.ui.browsing.JavaBrowsingPart.adjustInputAndSetSelection(JavaBrowsingPart.java:985) at org.eclipse.jdt.internal.ui.browsing.PackagesView.adjustInputAndSetSelection(PackagesView.java:411) at org.eclipse.jdt.internal.ui.browsing.JavaBrowsingPart.selectionChanged(JavaBrowsingPart.java:754) at org.eclipse.ui.internal.AbstractSelectionService$4.run(AbstractSelectionService.java:172) at org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:608) at org.eclipse.core.runtime.Platform.run(Platform.java:758) at org.eclipse.ui.internal.AbstractSelectionService.firePostSelection(AbstractSelectionService.java:170) at org.eclipse.ui.internal.AbstractSelectionService.partActivated(AbstractSelectionService.java:247) at org.eclipse.ui.internal.WorkbenchPage.firePartActivated(WorkbenchPage.java:1340) at org.eclipse.ui.internal.WorkbenchPage.setActivePart(WorkbenchPage.java:2631) at org.eclipse.ui.internal.WorkbenchPage.requestActivation(WorkbenchPage.java:2326) at org.eclipse.ui.internal.PartPane.requestActivation(PartPane.java:281) at org.eclipse.ui.internal.PartPane.setFocus(PartPane.java:302) at org.eclipse.ui.internal.PartStack.presentationSelectionChanged(PartStack.java:661) at org.eclipse.ui.internal.PartStack.access$0(PartStack.java:644) at org.eclipse.ui.internal.PartStack$1.selectPart(PartStack.java:94) at org.eclipse.ui.internal.presentations.DefaultPartPresentation.setSelection(DefaultPartPresentation.java:1088) at org.eclipse.ui.internal.presentations.DefaultPartPresentation$4.handleEvent(DefaultPartPresentation.java:159) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:944) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:968) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:953) at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:823) at org.eclipse.swt.custom.CTabFolder.setSelection(CTabFolder.java:2936) at org.eclipse.swt.custom.CTabFolder.onMouse(CTabFolder.java:1843) at org.eclipse.swt.custom.CTabFolder$1.handleEvent(CTabFolder.java:288) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:944) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:2542) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2253) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1363) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1334) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:253) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:141) at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:97) at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:307) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:256) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:127) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at org.eclipse.core.launcher.Main.basicRun(Main.java:185) at org.eclipse.core.launcher.Main.run(Main.java:638) at org.eclipse.core.launcher.Main.main(Main.java:622) "VM Thread" prio=1 tid=0x080873f0 nid=0x2c19 runnable "VM Periodic Task Thread" prio=1 tid=0x08091e48 nid=0x2c1f waiting on condition "Suspend Checker Thread" prio=1 tid=0x0808eda8 nid=0x2c1c runnable I'm now seeing this problem very, very often while debugging. I don't know what accounts for the fact that I was not experiencing it at all for the time since M9 came out until now. What more information can I provide to help solve this problem? I believe, with the fix to bug 63991, that this problem has finally been put to rest. This fix will be available in I20040604. Please give it a try and let me know if you continue to have clipboard hang problems. Just had one with I200406072000. Should I reopen this or continue in bug 63991? dump below. For some reason, it always seems to be the same instances accessing the clipboard that cause the hang: usually its refactoring.reorg.PasteAction, once javaeditor.ClipboardOperationAction.doPasteWithImportsOperation. Full thread dump Java HotSpot(TM) Client VM (1.4.2_04-b05 mixed mode): "Worker-83" prio=1 tid=0x5bb78bd0 nid=0x202e in Object.wait() [5b9f7000..5b9f7854] at java.lang.Object.wait(Native Method) at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:166) - locked <0x45ec66f8> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:193) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:59) "Worker-82" prio=1 tid=0x5bb78840 nid=0x202e in Object.wait() [5ba78000..5ba78854] at java.lang.Object.wait(Native Method) at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:166) - locked <0x45ec66f8> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:193) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:59) "Worker-80" prio=1 tid=0x5a60ca10 nid=0x202e in Object.wait() [5af98000..5af98854] at java.lang.Object.wait(Native Method) at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:166) - locked <0x45ec66f8> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:193) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:59) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=1 tid=0x5bb17f08 nid=0x202e runnable [5b874000..5b874854] at java.lang.Object.wait(Native Method) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:172) - locked <0x4b3523a0> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=1 tid=0x094302c0 nid=0x202e runnable [5b7f3000..5b7f3854] at java.lang.Object.wait(Native Method) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:172) - locked <0x4b0767f0> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=1 tid=0x09218220 nid=0x202e runnable [5b772000..5b772854] at java.lang.Object.wait(Native Method) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:172) - locked <0x4a16a188> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=1 tid=0x0942b250 nid=0x202e runnable [5a291000..5a291854] at java.lang.Object.wait(Native Method) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:172) - locked <0x4a110610> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=1 tid=0x0926b908 nid=0x202e runnable [5ad7c000..5ad7c854] at java.lang.Object.wait(Native Method) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:172) - locked <0x49d97368> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=1 tid=0x092136f0 nid=0x202e runnable [5aade000..5aade854] at java.lang.Object.wait(Native Method) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:172) - locked <0x489ca088> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) "org.eclipse.jdt.debug: JDI Event Dispatcher" prio=1 tid=0x08fd3890 nid=0x202e in Object.wait() [5acfb000..5acfb854] at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java:429) at org.eclipse.jdi.internal.connect.PacketReceiveManager.waitForPacketAvailable(PacketReceiveManager.java:168) at org.eclipse.jdi.internal.connect.PacketReceiveManager.getCommand(PacketReceiveManager.java:93) - locked <0x47e4a588> (a org.eclipse.jdi.internal.connect.PacketReceiveManager) at org.eclipse.jdi.internal.MirrorImpl.getCommandVM(MirrorImpl.java:276) at org.eclipse.jdi.internal.event.EventQueueImpl.remove(EventQueueImpl.java:63) at org.eclipse.jdi.internal.event.EventQueueImpl.remove(EventQueueImpl.java:48) at org.eclipse.jdt.internal.debug.core.EventDispatcher.run(EventDispatcher.java:213) at java.lang.Thread.run(Thread.java:534) "Packet Send Manager" prio=1 tid=0x090809e8 nid=0x202e in Object.wait() [5b670000..5b670854] at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java:429) at org.eclipse.jdi.internal.connect.PacketSendManager.sendAvailablePackets(PacketSendManager.java:94) - locked <0x47e4a6d0> (a org.eclipse.jdi.internal.connect.PacketSendManager) at org.eclipse.jdi.internal.connect.PacketSendManager.run(PacketSendManager.java:54) at java.lang.Thread.run(Thread.java:534) "Packet Receive Manager" prio=1 tid=0x0907e4d0 nid=0x202e runnable [5b373000..5b373854] at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(SocketInputStream.java:129) at java.net.SocketInputStream.read(SocketInputStream.java:182) at java.io.DataInputStream.readInt(DataInputStream.java:443) at org.eclipse.jdi.internal.jdwp.JdwpPacket.read(JdwpPacket.java:124) at org.eclipse.jdi.internal.connect.PacketReceiveManager.readAvailablePacket(PacketReceiveManager.java:224) at org.eclipse.jdi.internal.connect.PacketReceiveManager.run(PacketReceiveManager.java:70) at java.lang.Thread.run(Thread.java:534) "Console Polling Thread" prio=1 tid=0x08fd73b8 nid=0x202e sleeping[5b09a000..5b09a854] at java.lang.Thread.sleep(Native Method) at org.eclipse.debug.internal.ui.views.console.ConsoleDocumentPartitioner.pollAndSleep(ConsoleDocumentPartitioner.java:565) at org.eclipse.debug.internal.ui.views.console.ConsoleDocumentPartitioner$1.run(ConsoleDocumentPartitioner.java:549) at java.lang.Thread.run(Thread.java:534) "Input Stream Monitor" prio=1 tid=0x08f606b0 nid=0x202e in Object.wait() [5ae7e000..5ae7e854] at java.lang.Object.wait(Native Method) - waiting on <0x47e4a860> (a java.lang.Object) at java.lang.Object.wait(Object.java:429) at org.eclipse.debug.internal.core.InputStreamMonitor.writeNext(InputStreamMonitor.java:124) - locked <0x47e4a860> (a java.lang.Object) at org.eclipse.debug.internal.core.InputStreamMonitor.write(InputStreamMonitor.java:99) at org.eclipse.debug.internal.core.InputStreamMonitor$1.run(InputStreamMonitor.java:75) at java.lang.Thread.run(Thread.java:534) "Output Stream Monitor" prio=1 tid=0x08f60d60 nid=0x202e runnable [5b2f2000..5b2f2854] at java.io.FileInputStream.readBytes(Native Method) at java.io.FileInputStream.read(FileInputStream.java:177) at org.eclipse.debug.internal.core.OutputStreamMonitor.read(OutputStreamMonitor.java:132) at org.eclipse.debug.internal.core.OutputStreamMonitor.access$1(OutputStreamMonitor.java:124) at org.eclipse.debug.internal.core.OutputStreamMonitor$1.run(OutputStreamMonitor.java:177) at java.lang.Thread.run(Thread.java:534) "Output Stream Monitor" prio=1 tid=0x08fd5b88 nid=0x202e runnable [5b019000..5b019854] at java.io.FileInputStream.readBytes(Native Method) at java.io.FileInputStream.read(FileInputStream.java:194) at java.io.BufferedInputStream.read1(BufferedInputStream.java:220) at java.io.BufferedInputStream.read(BufferedInputStream.java:277) - locked <0x47e4e9b0> (a java.io.BufferedInputStream) at java.io.FilterInputStream.read(FilterInputStream.java:90) at org.eclipse.debug.internal.core.OutputStreamMonitor.read(OutputStreamMonitor.java:132) at org.eclipse.debug.internal.core.OutputStreamMonitor.access$1(OutputStreamMonitor.java:124) at org.eclipse.debug.internal.core.OutputStreamMonitor$1.run(OutputStreamMonitor.java:177) at java.lang.Thread.run(Thread.java:534) "process reaper" daemon prio=1 tid=0x08fd9ba0 nid=0x202e runnable [5ac7a000..5ac7a854] at java.lang.UNIXProcess.waitForProcessExit(Native Method) at java.lang.UNIXProcess.access$1500(UNIXProcess.java:20) at java.lang.UNIXProcess$2.run(UNIXProcess.java:127) "Worker-23" prio=1 tid=0x5a603750 nid=0x202e in Object.wait() [5a4b3000..5a4b3854] at java.lang.Object.wait(Native Method) - waiting on <0x47e4ea48> (a java.lang.UNIXProcess) at java.lang.Object.wait(Object.java:429) at java.lang.UNIXProcess.waitFor(UNIXProcess.java:160) - locked <0x47e4ea48> (a java.lang.UNIXProcess) at org.eclipse.debug.core.model.RuntimeProcess$ProcessMonitorJob.run(RuntimeProcess.java:362) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:66) "Java indexing" daemon prio=1 tid=0x085b9848 nid=0x202e in Object.wait() [5a210000..5a210854] at java.lang.Object.wait(Native Method) - waiting on <0x46680fc0> (a org.eclipse.jdt.internal.core.search.indexing.IndexManager) at java.lang.Object.wait(Object.java:429) at org.eclipse.jdt.internal.core.search.processing.JobManager.run(JobManager.java:344) - locked <0x46680fc0> (a org.eclipse.jdt.internal.core.search.indexing.IndexManager) at java.lang.Thread.run(Thread.java:534) "Reference Cleaner - 2" prio=1 tid=0x080add40 nid=0x202e in Object.wait() [5984b000..5984b854] at java.lang.Object.wait(Native Method) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111) - locked <0x46677848> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127) at org.eclipse.jface.action.ActionContributionItem$ImageCache$ReferenceCleanerThread.run(ActionContributionItem.java:207) "Reference Cleaner - 1" prio=1 tid=0x0824de90 nid=0x202e in Object.wait() [58b29000..58b29854] at java.lang.Object.wait(Native Method) - waiting on <0x466778b8> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111) - locked <0x466778b8> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127) at org.eclipse.jface.action.ActionContributionItem$ImageCache$ReferenceCleanerThread.run(ActionContributionItem.java:207) "Start Level Event Dispatcher" daemon prio=1 tid=0x08147140 nid=0x202e in Object.wait() [58a93000..58a93854] at java.lang.Object.wait(Native Method) - waiting on <0x45a70060> (a org.eclipse.osgi.framework.eventmgr.EventThread) at java.lang.Object.wait(Object.java:429) at org.eclipse.osgi.framework.eventmgr.EventThread.getNextEvent(EventThread.java:162) - locked <0x45a70060> (a org.eclipse.osgi.framework.eventmgr.EventThread) at org.eclipse.osgi.framework.eventmgr.EventThread.run(EventThread.java:100) "Framework Event Dispatcher" daemon prio=1 tid=0x0814da88 nid=0x202e in Object.wait() [58a12000..58a12854] at java.lang.Object.wait(Native Method) - waiting on <0x45a70240> (a org.eclipse.osgi.framework.eventmgr.EventThread) at java.lang.Object.wait(Object.java:429) at org.eclipse.osgi.framework.eventmgr.EventThread.getNextEvent(EventThread.java:162) - locked <0x45a70240> (a org.eclipse.osgi.framework.eventmgr.EventThread) at org.eclipse.osgi.framework.eventmgr.EventThread.run(EventThread.java:100) "Signal Dispatcher" daemon prio=1 tid=0x0808d308 nid=0x202e waiting on condition [0..0] "Finalizer" daemon prio=1 tid=0x080886c0 nid=0x202e in Object.wait() [583f5000..583f5854] at java.lang.Object.wait(Native Method) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111) - locked <0x45a70368> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127) at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159) "Reference Handler" daemon prio=1 tid=0x08087ad0 nid=0x202e in Object.wait() [58374000..58374854] at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java:429) at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:115) - locked <0x45a700b0> (a java.lang.ref.Reference$Lock) "main" prio=1 tid=0x080522f8 nid=0x202e runnable [bfff9000..bfffbab8] at org.eclipse.swt.internal.gtk.OS.gtk_clipboard_wait_for_contents(Native Method) - locked <0x5450ce28> (a java.lang.Class) at org.eclipse.swt.dnd.Clipboard.gtk_clipboard_wait_for_contents(Clipboard.java:385) at org.eclipse.swt.dnd.Clipboard._getAvailableTypes(Clipboard.java:351) at org.eclipse.swt.dnd.Clipboard.getAvailableTypes(Clipboard.java:300) at org.eclipse.jdt.internal.ui.refactoring.reorg.PasteAction.canOperateOn(PasteAction.java:129) at org.eclipse.jdt.internal.ui.refactoring.reorg.PasteAction.selectionChanged(PasteAction.java:118) at org.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchSelectionChanged(SelectionDispatchAction.java:200) at org.eclipse.jdt.ui.actions.SelectionDispatchAction.selectionChanged(SelectionDispatchAction.java:195) at org.eclipse.jface.viewers.Viewer$2.run(Viewer.java:159) at org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:615) at org.eclipse.core.runtime.Platform.run(Platform.java:758) at org.eclipse.jface.viewers.Viewer.fireSelectionChanged(Viewer.java:157) at org.eclipse.jface.viewers.StructuredViewer.updateSelection(StructuredViewer.java:1388) at org.eclipse.jface.viewers.StructuredViewer.setSelection(StructuredViewer.java:1090) at org.eclipse.jdt.internal.ui.packageview.PackageExplorerPart.showInput(PackageExplorerPart.java:1087) at org.eclipse.jdt.internal.ui.packageview.PackageExplorerPart.editorActivated(PackageExplorerPart.java:1054) at org.eclipse.jdt.internal.ui.packageview.PackageExplorerPart$1.partActivated(PackageExplorerPart.java:186) at org.eclipse.ui.internal.PartListenerList$1.run(PartListenerList.java:49) at org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:615) at org.eclipse.core.runtime.Platform.run(Platform.java:758) at org.eclipse.ui.internal.PartListenerList.firePartActivated(PartListenerList.java:47) at org.eclipse.ui.internal.WorkbenchPage.firePartActivated(WorkbenchPage.java:1357) at org.eclipse.ui.internal.WorkbenchPage.setActivePart(WorkbenchPage.java:2663) at org.eclipse.ui.internal.WorkbenchPage.requestActivation(WorkbenchPage.java:2358) at org.eclipse.ui.internal.PartPane.requestActivation(PartPane.java:304) at org.eclipse.ui.internal.EditorPane.requestActivation(EditorPane.java:127) at org.eclipse.ui.internal.PartPane.handleEvent(PartPane.java:284) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:944) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:968) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:949) at org.eclipse.swt.widgets.Shell.setActiveControl(Shell.java:891) at org.eclipse.swt.widgets.Control.gtk_button_press_event(Control.java:1676) at org.eclipse.swt.widgets.Composite.gtk_button_press_event(Composite.java:394) at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:1182) at org.eclipse.swt.widgets.Display.windowProc(Display.java:3012) at org.eclipse.swt.internal.gtk.OS.gtk_main_do_event(Native Method) at org.eclipse.swt.widgets.Display.eventProc(Display.java:815) at org.eclipse.swt.internal.gtk.OS.gtk_main_iteration(Native Method) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2222) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1363) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1334) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:253) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:141) at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:96) at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:334) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:273) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:128) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at org.eclipse.core.launcher.Main.basicRun(Main.java:185) at org.eclipse.core.launcher.Main.run(Main.java:638) at org.eclipse.core.launcher.Main.main(Main.java:622) "VM Thread" prio=1 tid=0x080867b0 nid=0x202e runnable "VM Periodic Task Thread" prio=1 tid=0x0808fb18 nid=0x202e waiting on condition "Suspend Checker Thread" prio=1 tid=0x0808c938 nid=0x202e runnable Tom, I have reopened this bug report. Can you identify any steps that consistently cause this to happen? Do you use Klipper? Do you use Gnome or KDE? Do you use another application that you copy and paste back and forth between it and eclipse - if so what? Could you also try with I20040609? - we put some additional event processing in this build. Thanks. Veronika, - No reproducible steps at all - it *seems" it is usually when hitting a breakpoint - I am seeing this a lot less than with earlier builds - currently on KDE - While I don't actively use Klipper, it is always running - I copy/paste most frequently from and to these applications: - gedit - mozilla - konsole - sanity - have not tried 0609 but will report back once I have I'm using I20040607. There seems to be no improvement. I'm using GNOME. just having it with I200406091200 on this vm: java version "1.4.2" J9 - VM for the Java(TM) platform (build 2.1) IBM J9SE VM (build 2.1, J2RE 1.4.2 IBM J9 build 20040519 (JIT enabled)) *** Bug 65889 has been marked as a duplicate of this bug. *** Hi, I'm also experiencing hangs with RC1 & RC2. With RC1 I had many short hangs (<1mn), and occasionally longer hangs. With RC2 I have very few short hangs, but quite a lot of longer hangs (about 5mn). I did not experience any of these with M9 I am using KDE, Mandrake10, I have clipper activated but do not directly use it, I mainly use mozilla, and I never found a connection between copy paste operations and hangs. It sometimes happens when a breakpoint is reached. Good News: I have been able to reproduce a scenario which will lead to a hang. Bad News: As far as I can see, there isn't anything we can do about it. Scenario: 1) Debug eclipse (call it B) from eclipse (call it A) 2) In B, select some text in an editor and copy it to the cipboard 3) In A, set a breakpoint in the eclipse code. (e.g. in org.eclipse.swt.widgets.Control.getBounds) 4) Do something to B so that it hits the breakpoint (e.g resize the window). 5) Now, either the hang will happen in A immediately or you will need to do something like hit Ctrl V in an editor in A. What is happening is that B owns the clipboard and any requests to get the data from the clipboard must be hadled by B. If B is suspended because you have hit a break point, then B can not process the clipboard requests. If A requests data from the clipboard while B is suspended, A will have to wait until a built in timer in GTK expires before it can do anything. In addition to the above scenario, the following can cause a hang: Application A is in a tight loop requesting data from the clipboard. Application B that sets data on the clipboard. Application B exits. If A happened to request data from the clipboard just as B was exiting, A will hang. Apparently, calling gtk_clipboard_clear before exiting the application is not sufficient to prevent this. Removing the dispatchEvents code does not make the problem go away. Without the dispatchEvents code, the OS can process some events so it may look like the UI is active because scrollbars will scroll but the UI is hung because the SWT events are blocked. No selection events are received etc. To avoid getting in this state do not copy data to the clipboard from the launched eclipse application. If you are frozen, eventually a GTK timer will expire and you will become unstuck. I will add this item to the SWT README and enter a bug report against GTK. Note that this is not a problem on motif because we immediately flush the data to the OS clipboard. README entry has been added. Closing bug report. *** Bug 71818 has been marked as a duplicate of this bug. *** *** Bug 75161 has been marked as a duplicate of this bug. *** *** Bug 75421 has been marked as a duplicate of this bug. *** As a note, I've just seen this in I200410130800. While I'm not absolutely certain, I don't believe my steps include any of the scenarios below. As far as I know, there was no (intentional) clipboard interaction. If it happens again (i.e., it's becoming frequent), then I'll let you know. After the timeout, the applications becomes lively again. This has gotten a lot worse again with the "copy selection to clipboard" feature added recently. Whenever I type into my debug target workbench triggering a breakpoint hit, I am there again. . Closing as WONTFIX because this is an OS bug that we cannot work around. |