Community
Participate
Working Groups
I do most of my development with the JDT, and thus that is where I've noticed everything I'm going to report. This *might* be a platform thing, I don't know. Environment: Eclipse I200405060200-gtk gtk+ 2.4.0 kde 3.2.1 Gentoo 1.4.10 Symptoms: There are a number of things that happen while running Eclispe that make it feel like the UI becomes "disconnected" from the underlying application. 1. Running JUnit tests. If you watch the console, you'll see that the tests terminate way before the UI starts reporting the test results. 2. Using the Java Editor, there are (quite often) instances where although the editor will respond to my typing, it won't respond to mouse motions (highlighting, etc). Scroll bars will move, but the editor won't move with them. On the other hand, if you scroll in the editor with the mouse keys, the scrollbars will sync. The editor will continue with syntax highlighting, but "semantic" highlighting and error/warning squiggles won't work. After an undetermined amount of time (sometimes minutes, other times I've had to restart Eclipse), the UI will suddenly start responding again, and will react to all of the clicks, motions, etc. that had been made while it was unresponsive. Closing Eclipse won't actually stop the processes -- I have to manually kill them. 3. When just starting Eclipse, the window appears and is all-grey. It isn't until I actually move the window that the contents appears. I apologize if these are all different bugs, or are unrelated to the JDT (ie/ are part of Platform).
Regarding JUnit: we change the result presentation from Push to Poll. We are now polling in certain intervalls which avoid that the Ui get flooded with repaints event. Opened separate bug for item 3 (61419). Moving to text to comment on item 2.
Does that mean that item 1 is intentional? If so, is there any need to update the JUnit output as is currently done? It's fairly slow...
to be investigated during performance pass
Investigating item 2. Marco, is this a new problem starting with the I20040506 build or did you observe this with older builds too? Did you have folding and/or spell-checking enabled when the UI became unresponsive?
I do have folding enabled, but not spell checking. I'm pretty sure that this happened before I20040506 -- but, since I'm not certain, I'll download an earlier version and test it out...
Even more intersting would be stacktraces from the running threads while you observe the lockup. You can start Eclipse with the command line switch -consolelog (an additional console window will open) and get the stacktraces during a lockup by pressing ctrl-break in the console.
I'm sorry - I might be doing something wrong, but executing /opt/eclipse/eclipse -consolelog -vm /usr/java/j2sdk1.4.2_03/bin/java -vmargs -Xms128m -Xmx384m from the command line doesn't open any extra windows...
My description seems to be windows specific. Does ctrl-break in the console (in which you started Eclipse) print the thread dump? Another possibility could be to send a SIGHUP to the process. I'm not sure though, better save your work before trying this.
Thanks for the pointer. I checked it out, and the unix solution is send QUIT, or to hit <ctrl>\ in the window where the program started. As soon as it locks up again, I'll paste a stack trace. :-)
Ok, this is the first time it happened to me this morning. This happened while I was typing: getMockContext().stubs().method("getInterpreter").withNoArguments().will( returnValue(mockInterpreter.proxy()) ); You know that box that appears when you are typing a new string, or method parameters? (It surrounds the text you type -- the same kind of thing that appears when you do a quick-fix-rename...)... anyhow, there's one on screen, surrounding "getInterpreter").w After approx. 2 minutes, it went away and Eclipse returned to normal. Full thread dump Java HotSpot(TM) Client VM (1.4.2_03-b02 mixed mode): "AutoAssist Delay" prio=1 tid=0x63b1b5c0 nid=0x1226 in Object.wait() [63084000..630848b0] at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java:429) at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:152) - locked <0x45040048> (a org.eclipse.swt.widgets.RunnableLock) at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:25) at org.eclipse.swt.widgets.Display.syncExec(Display.java:2442) at org.eclipse.jface.text.contentassist.ContentAssistant$AutoAssistListener.showAssist(ContentAssistant.java:319) at org.eclipse.jface.text.contentassist.ContentAssistant$AutoAssistListener.run(ContentAssistant.java:246) at java.lang.Thread.run(Thread.java:534) "Worker-17" prio=1 tid=0x0868e0d0 nid=0x11f9 in Object.wait() [633b4000..633b48b0] at java.lang.Object.wait(Native Method) - waiting on <0x468b39e0> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:209) - locked <0x468b39e0> (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=0x0878ee88 nid=0x105b in Object.wait() [62ede000..62ede8b0] at java.lang.Object.wait(Native Method) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:161) - locked <0x483aaf68> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=1 tid=0x086849f0 nid=0x1057 in Object.wait() [62c07000..62c078b0] at java.lang.Object.wait(Native Method) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:161) - locked <0x482019e0> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) "Java indexing" daemon prio=1 tid=0x08197fc8 nid=0xf58 in Object.wait() [62809000..628098b0] at java.lang.Object.wait(Native Method) - waiting on <0x46a0ac28> (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:323) - locked <0x46a0ac28> (a org.eclipse.jdt.internal.core.search.indexing.IndexManager) at java.lang.Thread.run(Thread.java:534) "Start Level Event Dispatcher" daemon prio=1 tid=0x0823b448 nid=0xf40 in Object.wait() [60f85000..60f858b0] at java.lang.Object.wait(Native Method) - waiting on <0x464e02f0> (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:149) - locked <0x464e02f0> (a org.eclipse.osgi.framework.eventmgr.EventThread) at org.eclipse.osgi.framework.eventmgr.EventThread.run(EventThread.java:107) "Framework Event Dispatcher" daemon prio=1 tid=0x0823ca20 nid=0xf3f in Object.wait() [60f04000..60f048b0] at java.lang.Object.wait(Native Method) - waiting on <0x464e0340> (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:149) - locked <0x464e0340> (a org.eclipse.osgi.framework.eventmgr.EventThread) at org.eclipse.osgi.framework.eventmgr.EventThread.run(EventThread.java:107) "Signal Dispatcher" daemon prio=1 tid=0x0808f520 nid=0xf3a waiting on condition [0..0] "Finalizer" daemon prio=1 tid=0x0808bdd0 nid=0xf38 in Object.wait() [60a86000..60a868b0] at java.lang.Object.wait(Native Method) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111) - locked <0x464e04e0> (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=0x0808a318 nid=0xf37 in Object.wait() [60a05000..60a058b0] at java.lang.Object.wait(Native Method) - waiting on <0x464e0548> (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 <0x464e0548> (a java.lang.ref.Reference$Lock) "main" prio=1 tid=0x080524d0 nid=0xf34 runnable [bfffa000..bfffb538] at org.eclipse.swt.internal.gtk.OS.gtk_clipboard_wait_for_contents(Native Method) - locked <0x5cb88998> (a java.lang.Class) 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:604) at org.eclipse.core.runtime.Platform.run(Platform.java:545) at org.eclipse.jface.viewers.Viewer.fireSelectionChanged(Viewer.java:157) at org.eclipse.jface.viewers.StructuredViewer.updateSelection(StructuredViewer.java:1292) at org.eclipse.jface.viewers.StructuredViewer.setSelection(StructuredViewer.java:1015) at org.eclipse.jdt.internal.ui.browsing.JavaBrowsingPart.setSelection(JavaBrowsingPart.java:1173) at org.eclipse.jdt.internal.ui.browsing.JavaBrowsingPart.adjustInputAndSetSelection(JavaBrowsingPart.java:982) at org.eclipse.jdt.internal.ui.browsing.JavaBrowsingPart.setSelectionFromEditor(JavaBrowsingPart.java:1148) at org.eclipse.jdt.internal.ui.browsing.JavaBrowsingPart.selectionChanged(JavaBrowsingPart.java:682) at org.eclipse.ui.internal.AbstractSelectionService$4.run(AbstractSelectionService.java:172) at org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:604) at org.eclipse.core.runtime.Platform.run(Platform.java:545) at org.eclipse.ui.internal.AbstractSelectionService.firePostSelection(AbstractSelectionService.java:170) at org.eclipse.ui.internal.AbstractSelectionService$2.selectionChanged(AbstractSelectionService.java:76) at org.eclipse.jface.text.TextViewer.firePostSelectionChanged(TextViewer.java:2160) at org.eclipse.jface.text.TextViewer.firePostSelectionChanged(TextViewer.java:2113) at org.eclipse.jface.text.TextViewer$4.run(TextViewer.java:2092) at org.eclipse.swt.widgets.Display.timerProc(Display.java:2361) at org.eclipse.swt.internal.gtk.OS.gtk_main_iteration(Native Method) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1782) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1353) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1324) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:243) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:140) at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:90) at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:283) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:242) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:119) 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:269) at org.eclipse.core.launcher.Main.run(Main.java:700) at org.eclipse.core.launcher.Main.main(Main.java:684) "VM Thread" prio=1 tid=0x080870b0 nid=0xf36 runnable "VM Periodic Task Thread" prio=1 tid=0x08091c48 nid=0xf3c waiting on condition "Suspend Checker Thread" prio=1 tid=0x0808ebb0 nid=0xf39 runnable
Another one. No box-thingy like last time. code-assist doesn't work. Full thread dump Java HotSpot(TM) Client VM (1.4.2_03-b02 mixed mode): "Worker-23" prio=1 tid=0x64125010 nid=0x1351 in Object.wait() [628af000..628af8b0] at java.lang.Object.wait(Native Method) - waiting on <0x468b39e0> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:209) - locked <0x468b39e0> (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=0x0897b300 nid=0x1299 in Object.wait() [62cd1000..62cd18b0] at java.lang.Object.wait(Native Method) - waiting on <0x468b39e0> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:209) - locked <0x468b39e0> (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=0x0878ee88 nid=0x105b in Object.wait() [62ede000..62ede8b0] at java.lang.Object.wait(Native Method) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:161) - locked <0x483aaf68> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=1 tid=0x086849f0 nid=0x1057 in Object.wait() [62c07000..62c078b0] at java.lang.Object.wait(Native Method) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:161) - locked <0x482019e0> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) "Java indexing" daemon prio=1 tid=0x08197fc8 nid=0xf58 in Object.wait() [62809000..628098b0] at java.lang.Object.wait(Native Method) - waiting on <0x46a0ac28> (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:323) - locked <0x46a0ac28> (a org.eclipse.jdt.internal.core.search.indexing.IndexManager) at java.lang.Thread.run(Thread.java:534) "Start Level Event Dispatcher" daemon prio=1 tid=0x0823b448 nid=0xf40 in Object.wait() [60f85000..60f858b0] at java.lang.Object.wait(Native Method) - waiting on <0x464e02f0> (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:149) - locked <0x464e02f0> (a org.eclipse.osgi.framework.eventmgr.EventThread) at org.eclipse.osgi.framework.eventmgr.EventThread.run(EventThread.java:107) "Framework Event Dispatcher" daemon prio=1 tid=0x0823ca20 nid=0xf3f in Object.wait() [60f04000..60f048b0] at java.lang.Object.wait(Native Method) - waiting on <0x464e0340> (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:149) - locked <0x464e0340> (a org.eclipse.osgi.framework.eventmgr.EventThread) at org.eclipse.osgi.framework.eventmgr.EventThread.run(EventThread.java:107) "Signal Dispatcher" daemon prio=1 tid=0x0808f520 nid=0xf3a waiting on condition [0..0] "Finalizer" daemon prio=1 tid=0x0808bdd0 nid=0xf38 in Object.wait() [60a86000..60a868b0] at java.lang.Object.wait(Native Method) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111) - locked <0x464e04e0> (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=0x0808a318 nid=0xf37 in Object.wait() [60a05000..60a058b0] at java.lang.Object.wait(Native Method) - waiting on <0x464e0548> (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 <0x464e0548> (a java.lang.ref.Reference$Lock) "main" prio=1 tid=0x080524d0 nid=0xf34 runnable [bfffa000..bfffb538] at org.eclipse.swt.internal.gtk.OS.gtk_clipboard_wait_for_contents(Native Method) - locked <0x5cb88998> (a java.lang.Class) at org.eclipse.swt.dnd.Clipboard._getAvailableTypes(Clipboard.java:364) 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:604) at org.eclipse.core.runtime.Platform.run(Platform.java:545) at org.eclipse.jface.viewers.Viewer.fireSelectionChanged(Viewer.java:157) at org.eclipse.jface.viewers.StructuredViewer.updateSelection(StructuredViewer.java:1292) at org.eclipse.jface.viewers.StructuredViewer.setSelection(StructuredViewer.java:1015) at org.eclipse.jdt.internal.ui.browsing.JavaBrowsingPart.setSelection(JavaBrowsingPart.java:1173) at org.eclipse.jdt.internal.ui.browsing.JavaBrowsingPart.adjustInputAndSetSelection(JavaBrowsingPart.java:980) at org.eclipse.jdt.internal.ui.browsing.JavaBrowsingPart.setSelectionFromEditor(JavaBrowsingPart.java:1133) at org.eclipse.jdt.internal.ui.browsing.JavaBrowsingPart.selectionChanged(JavaBrowsingPart.java:682) at org.eclipse.ui.internal.AbstractSelectionService$4.run(AbstractSelectionService.java:172) at org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:604) at org.eclipse.core.runtime.Platform.run(Platform.java:545) at org.eclipse.ui.internal.AbstractSelectionService.firePostSelection(AbstractSelectionService.java:170) at org.eclipse.ui.internal.AbstractSelectionService$2.selectionChanged(AbstractSelectionService.java:76) at org.eclipse.jface.text.TextViewer.firePostSelectionChanged(TextViewer.java:2160) at org.eclipse.jface.text.TextViewer.firePostSelectionChanged(TextViewer.java:2113) at org.eclipse.jface.text.TextViewer$4.run(TextViewer.java:2092) at org.eclipse.swt.widgets.Display.timerProc(Display.java:2361) at org.eclipse.swt.internal.gtk.OS.gtk_main_iteration(Native Method) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1782) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1353) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1324) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:243) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:140) at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:90) at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:283) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:242) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:119) 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:269) at org.eclipse.core.launcher.Main.run(Main.java:700) at org.eclipse.core.launcher.Main.main(Main.java:684) "VM Thread" prio=1 tid=0x080870b0 nid=0xf36 runnable "VM Periodic Task Thread" prio=1 tid=0x08091c48 nid=0xf3c waiting on condition "Suspend Checker Thread" prio=1 tid=0x0808ebb0 nid=0xf39 runnable
Let me know if you'd like any more stack traces or if there's any other way I can help.
I don't know if this is related, but it actually resulted in a complete deadlock: I was typing: AccessHelper.invokeMethod(new NormalGameState(getContext()), "interpret", new Class[] {Class.class}}) My cursor is just in front of the last }. There's a red squiggle under the . in Class.class. There's a thin green bar (the "this is where you'll tab to" bar) at the very end of the line. I was typing away, and realized that I'd hit an extra closing brace, so I hit delete. One thing I've forgotten to mention, which is prbably very significant, is that I have my code-assist delay set to 0 and I have auto-assist on. Full thread dump Java HotSpot(TM) Client VM (1.4.2_03-b02 mixed mode): "Worker-6" prio=1 tid=0x086d9bb8 nid=0x14a9 in Object.wait() [63580000..635808b0] at java.lang.Object.wait(Native Method) - waiting on <0x468b5490> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:209) - locked <0x468b5490> (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=0x0817c568 nid=0x148c waiting for monitor entry [632a1000..632a18b0] at org.eclipse.jdt.internal.ui.javaeditor.PartiallySynchronizedDocument.addPosition(PartiallySynchronizedDocument.java:110) - waiting to lock <0x478caa70> (a java.lang.Object) at org.eclipse.jface.text.AbstractDocument.addPosition(AbstractDocument.java:324) at org.eclipse.jface.text.source.AnnotationModel.addPosition(AnnotationModel.java:261) - locked <0x478b0b48> (a org.eclipse.jdt.internal.ui.javaeditor.PartiallySynchronizedDocument) at org.eclipse.jface.text.source.AnnotationModel.addAnnotation(AnnotationModel.java:225) at org.eclipse.jface.text.source.AnnotationModel.replaceAnnotations(AnnotationModel.java:203) at org.eclipse.jface.text.source.projection.ProjectionAnnotationModel.modifyAnnotations(ProjectionAnnotationModel.java:137) at org.eclipse.jdt.internal.ui.text.folding.DefaultJavaFoldingStructureProvider.processDelta(DefaultJavaFoldingStructureProvider.java:453) at org.eclipse.jdt.internal.ui.text.folding.DefaultJavaFoldingStructureProvider$ElementChangedListener.elementChanged(DefaultJavaFoldingStructureProvider.java:105) at org.eclipse.jdt.internal.core.DeltaProcessor$2.run(DeltaProcessor.java:1459) at org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:604) at org.eclipse.core.runtime.Platform.run(Platform.java:545) at org.eclipse.jdt.internal.core.DeltaProcessor.notifyListeners(DeltaProcessor.java:1454) at org.eclipse.jdt.internal.core.DeltaProcessor.fireReconcileDelta(DeltaProcessor.java:1321) at org.eclipse.jdt.internal.core.DeltaProcessor.fire(DeltaProcessor.java:1279) at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:720) at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:739) at org.eclipse.jdt.internal.core.CompilationUnit.reconcile(CompilationUnit.java:1099) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:88) - locked <0x478b13a8> (a org.eclipse.jdt.internal.core.CompilationUnit) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:129) at org.eclipse.jdt.internal.ui.text.CompositeReconcilingStrategy.reconcile(CompositeReconcilingStrategy.java:86) at org.eclipse.jdt.internal.ui.text.JavaCompositeReconcilingStrategy.reconcile(JavaCompositeReconcilingStrategy.java:96) at org.eclipse.jface.text.reconciler.MonoReconciler.process(MonoReconciler.java:76) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:189) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=1 tid=0x08182bd8 nid=0x1475 in Object.wait() [62bca000..62bca8b0] at java.lang.Object.wait(Native Method) - waiting on <0x46bc1de0> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:161) - locked <0x46bc1de0> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) "Java indexing" daemon prio=1 tid=0x0851e738 nid=0x1473 in Object.wait() [6270c000..6270c8b0] at java.lang.Object.wait(Native Method) - waiting on <0x469e98a0> (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:323) - locked <0x469e98a0> (a org.eclipse.jdt.internal.core.search.indexing.IndexManager) at java.lang.Thread.run(Thread.java:534) "Start Level Event Dispatcher" daemon prio=1 tid=0x0823b448 nid=0x1470 in Object.wait() [60f85000..60f858b0] at java.lang.Object.wait(Native Method) - waiting on <0x464e02f0> (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:149) - locked <0x464e02f0> (a org.eclipse.osgi.framework.eventmgr.EventThread) at org.eclipse.osgi.framework.eventmgr.EventThread.run(EventThread.java:107) "Framework Event Dispatcher" daemon prio=1 tid=0x0823ca20 nid=0x146f in Object.wait() [60f04000..60f048b0] at java.lang.Object.wait(Native Method) - waiting on <0x464e0340> (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:149) - locked <0x464e0340> (a org.eclipse.osgi.framework.eventmgr.EventThread) at org.eclipse.osgi.framework.eventmgr.EventThread.run(EventThread.java:107) "Signal Dispatcher" daemon prio=1 tid=0x0808f520 nid=0x146a waiting on condition [0..0] "Finalizer" daemon prio=1 tid=0x0808bdd0 nid=0x1468 in Object.wait() [60a86000..60a868b0] at java.lang.Object.wait(Native Method) - waiting on <0x464e04e0> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111) - locked <0x464e04e0> (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=0x0808a318 nid=0x1467 in Object.wait() [60a05000..60a058b0] at java.lang.Object.wait(Native Method) - waiting on <0x464e0548> (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 <0x464e0548> (a java.lang.ref.Reference$Lock) "main" prio=1 tid=0x080524d0 nid=0x1464 waiting for monitor entry [bfff9000..bfffbd38] at org.eclipse.jdt.internal.ui.javaeditor.SemanticHighlightingPresenter.setCanceled(SemanticHighlightingPresenter.java:601) - waiting to lock <0x478b0b48> (a org.eclipse.jdt.internal.ui.javaeditor.PartiallySynchronizedDocument) at org.eclipse.jdt.internal.ui.javaeditor.SemanticHighlightingPresenter.documentChanged(SemanticHighlightingPresenter.java:574) at org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged2(AbstractDocument.java:673) at org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged(AbstractDocument.java:638) at org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged(AbstractDocument.java:623) at org.eclipse.jface.text.AbstractDocument.fireDocumentChanged(AbstractDocument.java:698) at org.eclipse.jface.text.AbstractDocument.replace(AbstractDocument.java:989) at org.eclipse.jdt.internal.ui.javaeditor.PartiallySynchronizedDocument.replace(PartiallySynchronizedDocument.java:92) - locked <0x478caa70> (a java.lang.Object) at org.eclipse.jface.text.DocumentCommand$Command.execute(DocumentCommand.java:88) at org.eclipse.jface.text.DocumentCommand.execute(DocumentCommand.java:429) at org.eclipse.jface.text.TextViewer.handleVerifyEvent(TextViewer.java:3240) at org.eclipse.jface.text.source.projection.ProjectionViewer.handleVerifyEvent(ProjectionViewer.java:919) at org.eclipse.jface.text.TextViewer$TextVerifyListener.verifyText(TextViewer.java:334) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:193) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:939) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:963) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:948) at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:818) at org.eclipse.swt.custom.StyledText.modifyContent(StyledText.java:5555) at org.eclipse.swt.custom.StyledText.sendKeyEvent(StyledText.java:6405) at org.eclipse.swt.custom.StyledText.doDelete(StyledText.java:2633) at org.eclipse.swt.custom.StyledText.invokeAction(StyledText.java:5469) at org.eclipse.jface.text.TextViewer.deleteText(TextViewer.java:3495) at org.eclipse.jface.text.TextViewer.doOperation(TextViewer.java:3390) at org.eclipse.jface.text.source.SourceViewer.doOperation(SourceViewer.java:744) at org.eclipse.jface.text.source.projection.ProjectionViewer.doOperation(ProjectionViewer.java:1088) at org.eclipse.jdt.internal.ui.javaeditor.JavaSourceViewer.doOperation(JavaSourceViewer.java:148) at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor$AdaptedSourceViewer.doOperation(CompilationUnitEditor.java:197) at org.eclipse.ui.texteditor.TextOperationAction$1.run(TextOperationAction.java:122) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:84) at org.eclipse.ui.texteditor.TextOperationAction.run(TextOperationAction.java:120) 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:127) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.executeCommand(WorkbenchKeyboard.java:468) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.press(WorkbenchKeyboard.java:886) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.processKeyEvent(WorkbenchKeyboard.java:927) at org.eclipse.ui.internal.keys.OutOfOrderListener.handleEvent(OutOfOrderListener.java:67) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:939) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:963) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:948) at org.eclipse.swt.widgets.Control.sendKeyEvent(Control.java:2252) at org.eclipse.swt.widgets.Control.gtk_key_press_event(Control.java:1764) at org.eclipse.swt.widgets.Composite.gtk_key_press_event(Composite.java:441) at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:1189) at org.eclipse.swt.widgets.Display.windowProc(Display.java:2517) at org.eclipse.swt.internal.gtk.OS.gtk_main_do_event(Native Method) at org.eclipse.swt.widgets.Display.eventProc(Display.java:759) at org.eclipse.swt.internal.gtk.OS.gtk_main_iteration(Native Method) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1782) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1353) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1324) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:243) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:140) at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:90) at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:283) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:242) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:119) 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:269) at org.eclipse.core.launcher.Main.run(Main.java:700) at org.eclipse.core.launcher.Main.main(Main.java:684) "VM Thread" prio=1 tid=0x080870b0 nid=0x1466 runnable "VM Periodic Task Thread" prio=1 tid=0x08091c48 nid=0x146c waiting on condition "Suspend Checker Thread" prio=1 tid=0x0808ebb0 nid=0x1469 runnable Found one Java-level deadlock: ============================= "org.eclipse.jdt.internal.ui.text.JavaReconciler": waiting to lock monitor 0x0808af44 (object 0x478caa70, a java.lang.Object), which is held by "main" "main": waiting to lock monitor 0x0808b0cc (object 0x478b0b48, a org.eclipse.jdt.internal.ui.javaeditor.PartiallySynchronizedDocument), which is held by "org.eclipse.jdt.internal.ui.text.JavaReconciler" Java stack information for the threads listed above: =================================================== "org.eclipse.jdt.internal.ui.text.JavaReconciler": at org.eclipse.jdt.internal.ui.javaeditor.PartiallySynchronizedDocument.addPosition(PartiallySynchronizedDocument.java:110) - waiting to lock <0x478caa70> (a java.lang.Object) at org.eclipse.jface.text.AbstractDocument.addPosition(AbstractDocument.java:324) at org.eclipse.jface.text.source.AnnotationModel.addPosition(AnnotationModel.java:261) - locked <0x478b0b48> (a org.eclipse.jdt.internal.ui.javaeditor.PartiallySynchronizedDocument) at org.eclipse.jface.text.source.AnnotationModel.addAnnotation(AnnotationModel.java:225) at org.eclipse.jface.text.source.AnnotationModel.replaceAnnotations(AnnotationModel.java:203) at org.eclipse.jface.text.source.projection.ProjectionAnnotationModel.modifyAnnotations(ProjectionAnnotationModel.java:137) at org.eclipse.jdt.internal.ui.text.folding.DefaultJavaFoldingStructureProvider.processDelta(DefaultJavaFoldingStructureProvider.java:453) at org.eclipse.jdt.internal.ui.text.folding.DefaultJavaFoldingStructureProvider$ElementChangedListener.elementChanged(DefaultJavaFoldingStructureProvider.java:105) at org.eclipse.jdt.internal.core.DeltaProcessor$2.run(DeltaProcessor.java:1459) at org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:604) at org.eclipse.core.runtime.Platform.run(Platform.java:545) at org.eclipse.jdt.internal.core.DeltaProcessor.notifyListeners(DeltaProcessor.java:1454) at org.eclipse.jdt.internal.core.DeltaProcessor.fireReconcileDelta(DeltaProcessor.java:1321) at org.eclipse.jdt.internal.core.DeltaProcessor.fire(DeltaProcessor.java:1279) at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:720) at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:739) at org.eclipse.jdt.internal.core.CompilationUnit.reconcile(CompilationUnit.java:1099) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:88) - locked <0x478b13a8> (a org.eclipse.jdt.internal.core.CompilationUnit) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:129) at org.eclipse.jdt.internal.ui.text.CompositeReconcilingStrategy.reconcile(CompositeReconcilingStrategy.java:86) at org.eclipse.jdt.internal.ui.text.JavaCompositeReconcilingStrategy.reconcile(JavaCompositeReconcilingStrategy.java:96) at org.eclipse.jface.text.reconciler.MonoReconciler.process(MonoReconciler.java:76) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:189) "main": at org.eclipse.jdt.internal.ui.javaeditor.SemanticHighlightingPresenter.setCanceled(SemanticHighlightingPresenter.java:601) - waiting to lock <0x478b0b48> (a org.eclipse.jdt.internal.ui.javaeditor.PartiallySynchronizedDocument) at org.eclipse.jdt.internal.ui.javaeditor.SemanticHighlightingPresenter.documentChanged(SemanticHighlightingPresenter.java:574) at org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged2(AbstractDocument.java:673) at org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged(AbstractDocument.java:638) at org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged(AbstractDocument.java:623) at org.eclipse.jface.text.AbstractDocument.fireDocumentChanged(AbstractDocument.java:698) at org.eclipse.jface.text.AbstractDocument.replace(AbstractDocument.java:989) at org.eclipse.jdt.internal.ui.javaeditor.PartiallySynchronizedDocument.replace(PartiallySynchronizedDocument.java:92) - locked <0x478caa70> (a java.lang.Object) at org.eclipse.jface.text.DocumentCommand$Command.execute(DocumentCommand.java:88) at org.eclipse.jface.text.DocumentCommand.execute(DocumentCommand.java:429) at org.eclipse.jface.text.TextViewer.handleVerifyEvent(TextViewer.java:3240) at org.eclipse.jface.text.source.projection.ProjectionViewer.handleVerifyEvent(ProjectionViewer.java:919) at org.eclipse.jface.text.TextViewer$TextVerifyListener.verifyText(TextViewer.java:334) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:193) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:939) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:963) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:948) at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:818) at org.eclipse.swt.custom.StyledText.modifyContent(StyledText.java:5555) at org.eclipse.swt.custom.StyledText.sendKeyEvent(StyledText.java:6405) at org.eclipse.swt.custom.StyledText.doDelete(StyledText.java:2633) at org.eclipse.swt.custom.StyledText.invokeAction(StyledText.java:5469) at org.eclipse.jface.text.TextViewer.deleteText(TextViewer.java:3495) at org.eclipse.jface.text.TextViewer.doOperation(TextViewer.java:3390) at org.eclipse.jface.text.source.SourceViewer.doOperation(SourceViewer.java:744) at org.eclipse.jface.text.source.projection.ProjectionViewer.doOperation(ProjectionViewer.java:1088) at org.eclipse.jdt.internal.ui.javaeditor.JavaSourceViewer.doOperation(JavaSourceViewer.java:148) at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor$AdaptedSourceViewer.doOperation(CompilationUnitEditor.java:197) at org.eclipse.ui.texteditor.TextOperationAction$1.run(TextOperationAction.java:122) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:84) at org.eclipse.ui.texteditor.TextOperationAction.run(TextOperationAction.java:120) 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:127) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.executeCommand(WorkbenchKeyboard.java:468) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.press(WorkbenchKeyboard.java:886) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.processKeyEvent(WorkbenchKeyboard.java:927) at org.eclipse.ui.internal.keys.OutOfOrderListener.handleEvent(OutOfOrderListener.java:67) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:939) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:963) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:948) at org.eclipse.swt.widgets.Control.sendKeyEvent(Control.java:2252) at org.eclipse.swt.widgets.Control.gtk_key_press_event(Control.java:1764) at org.eclipse.swt.widgets.Composite.gtk_key_press_event(Composite.java:441) at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:1189) at org.eclipse.swt.widgets.Display.windowProc(Display.java:2517) at org.eclipse.swt.internal.gtk.OS.gtk_main_do_event(Native Method) at org.eclipse.swt.widgets.Display.eventProc(Display.java:759) at org.eclipse.swt.internal.gtk.OS.gtk_main_iteration(Native Method) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1782) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1353) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1324) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:243) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:140) at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:90) at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:283) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:242) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:119) 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:269) at org.eclipse.core.launcher.Main.run(Main.java:700) at org.eclipse.core.launcher.Main.main(Main.java:684) Found 1 deadlock.
Thanks Marco, the deadlock from comment 13 is fixed in builds >I20040506 and >N20040504.
The stacktraces in comment 10 and comment 11 both show the main thread executing OS.gtk_clipboard_wait_for_contents(..) during PasteAction.canOperateOn(..) during a Members View's selection change event. This could be a platform specific problem.
Moving to Platform/SWT for comment.
The OS.gtk_clipboard_wait_for_contents(..) issues sound like a duplicate of bug 44915 and should be fixed in any of the Integration builds of May 11.
In risk of being overly optimistic, it looks like bug 44915 might have solved this bug. I haven't noticed this happening since I200405110800 (I've also tried I200405111200, and am now running I200405120800). I used to see this as often as every five minutes (at its worst) to once an hour (at its best).
The fix for bug 44915 should address your stacks that contain gtk_clipboard_wait_for_contents . This report has wandered through a few different problems over its life. Can it now be closed (ie.- has everything been addressed either here or by some other report)?
Ok to close then, other issues have been addressed or a corresponding PR has been opened.
closing