I just installed 1.4.0 last week and like the new features a lot. However, when working in the Java perspective, every once in a while (4 times in the last 24 hours), eclipse just suddenly hangs and wont repaint the screen or anything. When I pull a jstack, I see something interesting:
My main UI loop is suspended waiting on the "reconcilers" to be done (Im guessing, I know nothing of Eclipse plugin development):
"main" prio=6 tid=0x0169f400 nid=0xa3c in Object.wait() [0x0012d000..0x0012fc10]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:485)
at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.suspendCallerWhileDirty(AbstractReconciler.java:119)
- locked <0x04b90070> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)
at org.eclipse.jface.text.reconciler.AbstractReconciler$Listener.inputDocumentAboutToBeChanged(AbstractReconciler.java:276)
at org.eclipse.jface.text.reconciler.AbstractReconciler.uninstall(AbstractReconciler.java:488)
at org.eclipse.jface.text.source.SourceViewer.unconfigure(SourceViewer.java:610)
at org.eclipse.jface.text.source.SourceViewer.handleDispose(SourceViewer.java:663)
at org.eclipse.jface.text.TextViewer$2.widgetDisposed(TextViewer.java:1726)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:117)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1003)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1027)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1012)
at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:770)
at org.eclipse.swt.custom.StyledText.handleDispose(StyledText.java:5044)
at org.eclipse.swt.custom.StyledText$7.handleEvent(StyledText.java:4872)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1003)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1027)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1008)
at org.eclipse.swt.widgets.Widget.release(Widget.java:804)
at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:755)
at org.eclipse.swt.widgets.Canvas.releaseChildren(Canvas.java:174)
at org.eclipse.swt.widgets.Widget.release(Widget.java:807)
at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:755)
at org.eclipse.swt.widgets.Widget.release(Widget.java:807)
at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:755)
at org.eclipse.swt.widgets.Widget.release(Widget.java:807)
at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:755)
at org.eclipse.swt.widgets.Widget.release(Widget.java:807)
at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:755)
at org.eclipse.swt.widgets.Widget.release(Widget.java:807)
at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:755)
at org.eclipse.swt.widgets.Widget.release(Widget.java:807)
at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:755)
at org.eclipse.swt.widgets.Widget.release(Widget.java:807)
at org.eclipse.swt.widgets.Widget.dispose(Widget.java:441)
at org.eclipse.ui.internal.PartPane.dispose(PartPane.java:179)
at org.eclipse.ui.internal.WorkbenchPartReference.dispose(WorkbenchPartReference.java:678)
at org.eclipse.ui.internal.WorkbenchPage.disposePart(WorkbenchPage.java:1682)
at org.eclipse.ui.internal.WorkbenchPage.handleDeferredEvents(WorkbenchPage.java:1389)
at org.eclipse.ui.internal.WorkbenchPage.deferUpdates(WorkbenchPage.java:1373)
at org.eclipse.ui.internal.WorkbenchPage.closeEditors(WorkbenchPage.java:1347)
at org.eclipse.ui.internal.WorkbenchPage.closeEditor(WorkbenchPage.java:1411)
at org.eclipse.ui.internal.CloseEditorHandler.execute(CloseEditorHandler.java:47)
Then I see a separate thread, the MonoReconciler, which is blocking due to a call coming out of the Texlipse spelling engine:
"org.eclipse.jface.text.reconciler.MonoReconciler" daemon prio=2 tid=0x356d7800 nid=0xfd4 in Object.wait() [0x39d2f000..0x39d2fce8]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:485)
at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:185)
- locked <0x04243778> (a org.eclipse.swt.widgets.RunnableLock)
at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:150)
at org.eclipse.swt.widgets.Display.syncExec(Display.java:4251)
at net.sourceforge.texlipse.TexlipsePlugin.getCurrentWorkbenchPage(TexlipsePlugin.java:249)
at net.sourceforge.texlipse.TexlipsePlugin.getCurrentProject(TexlipsePlugin.java:221)
at net.sourceforge.texlipse.spelling.TexSpellingEngine.check(TexSpellingEngine.java:182)
at org.eclipse.ui.texteditor.spelling.SpellingService$1.run(SpellingService.java:104)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
at org.eclipse.ui.texteditor.spelling.SpellingService.check(SpellingService.java:109)
at org.eclipse.ui.texteditor.spelling.SpellingReconcileStrategy.reconcile(SpellingReconcileStrategy.java:198)
at org.eclipse.ui.texteditor.spelling.SpellingReconcileStrategy.reconcile(SpellingReconcileStrategy.java:187)
at org.eclipse.jface.text.reconciler.MonoReconciler.process(MonoReconciler.java:73)
at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:206)
So there are no threads that aren't in a monitor wait state right now...so I think Im stuck forever :-) I've had to restart eclipse each time.
Hi, I am not a developer of Texlipse but I had a similar problem (Eclipse hanging on Quickfix in JDT). Using the Texlipse source from SVN seems to fix the problem. Perhaps you could try that.
Me and several other people had the same problem:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=319098
Fixed in latest release, please update your TeXlipse.