Complete lock up of Eclipse after typing something a bit (too) fast in the SDF editor :-/

See Worker Thread 4 and 8 and main thread, they look most relevant.


2011-09-01 17:04:08
Full thread dump Java HotSpot(TM) Server VM (19.0-b09 mixed mode):

“RMI TCP Connection(idle)” daemon prio=6 tid=0x48d16000 nid=0x11b8 waiting on condition [0x51abf000]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x3c514488> (a java.util.concurrent.SynchronousQueue$TransferStack)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)
at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:424)
at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:323)
at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:874)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:945)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:662)

Locked ownable synchronizers:
- None

“JMX server connection timeout 82” daemon prio=6 tid=0x48d15800 nid=0x1f3c in Object.wait() [0x516bf000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x3c277008> (a [I)
at com.sun.jmx.remote.internal.ServerCommunicatorAdmin$Timeout.run(ServerCommunicatorAdmin.java:150)
- locked <0x3c277008> (a [I)
at java.lang.Thread.run(Thread.java:662)

Locked ownable synchronizers:
- None

“RMI Scheduler(0)” daemon prio=6 tid=0x48d15400 nid=0x1e2c waiting on condition [0x512bf000]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x3c230b40> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2025)
at java.util.concurrent.DelayQueue.take(DelayQueue.java:164)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:609)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:602)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:662)

Locked ownable synchronizers:
- None

“RMI TCP Connection(1)-192.168.56.1” daemon prio=6 tid=0x47a24c00 nid=0x1670 runnable [0x4feef000]
java.lang.Thread.State: RUNNABLE
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:129)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
at java.io.BufferedInputStream.read(BufferedInputStream.java:237)
- locked <0x3c532d40> (a java.io.BufferedInputStream)
at java.io.FilterInputStream.read(FilterInputStream.java:66)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:517)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)

Locked ownable synchronizers:
- <0x3c5145a8> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)

“RMI TCP Accept-0” daemon prio=6 tid=0x47a25400 nid=0x1d18 runnable [0x4ee1f000]
java.lang.Thread.State: RUNNABLE
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:390)
- locked <0x3c277128> (a java.net.SocksSocketImpl)
at java.net.ServerSocket.implAccept(ServerSocket.java:462)
at java.net.ServerSocket.accept(ServerSocket.java:430)
at sun.management.jmxremote.LocalRMIServerSocketFactory$1.accept(LocalRMIServerSocketFactory.java:34)
at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(TCPTransport.java:369)
at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(TCPTransport.java:341)
at java.lang.Thread.run(Thread.java:662)

Locked ownable synchronizers:
- None

“Worker-8” prio=6 tid=0x47a26c00 nid=0x18cc waiting for monitor entry [0x4c03f000]
java.lang.Thread.State: BLOCKED (on object monitor)
at org.eclipse.jface.text.source.AnnotationMap.containsKey(AnnotationMap.java:91)
- waiting to lock <0x17b71fe0> (a java.lang.Object)
at org.eclipse.jface.text.source.AnnotationModel.addAnnotation(AnnotationModel.java:437)
at org.eclipse.ui.texteditor.AbstractMarkerAnnotationModel.addMarkerAnnotation(AbstractMarkerAnnotationModel.java:228)
at org.eclipse.ui.texteditor.ResourceMarkerAnnotationModel.batchedUpdate(ResourceMarkerAnnotationModel.java:130)
at org.eclipse.ui.texteditor.ResourceMarkerAnnotationModel.update(ResourceMarkerAnnotationModel.java:112)
at org.eclipse.ui.texteditor.ResourceMarkerAnnotationModel$ResourceChangeListener.resourceChanged(ResourceMarkerAnnotationModel.java:56)
at org.eclipse.core.internal.events.NotificationManager$2.run(NotificationManager.java:291)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.core.internal.events.NotificationManager.notify(NotificationManager.java:285)
at org.eclipse.core.internal.events.NotificationManager.broadcastChanges(NotificationManager.java:149)
at org.eclipse.core.internal.resources.Workspace.broadcastPostChange(Workspace.java:327)
at org.eclipse.core.internal.resources.Workspace.endOperation(Workspace.java:1181)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1984)
at org.strategoxt.imp.runtime.parser.ast.AstMessageBatch.runInWorkspace(AstMessageBatch.java:319)
at org.strategoxt.imp.runtime.parser.ast.AstMessageBatch.commitAllChanges(AstMessageBatch.java:149)
at org.strategoxt.imp.runtime.parser.ast.AstMessageHandler.commitAllChanges(AstMessageHandler.java:221)
at org.strategoxt.imp.runtime.services.StrategoObserver.presentToUser(StrategoObserver.java:590)
at org.strategoxt.imp.runtime.services.StrategoObserver.update(StrategoObserver.java:508)
at org.strategoxt.imp.runtime.services.StrategoObserverUpdateJob.analyze(StrategoObserverUpdateJob.java:30)
at org.strategoxt.imp.runtime.services.StrategoAnalysisQueue$UpdateJob.run(StrategoAnalysisQueue.java:88)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)

Locked ownable synchronizers:
- <0x15ff5418> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)

“Worker-7” prio=6 tid=0x47a28400 nid=0x1238 in Object.wait() [0x4bacf000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x16626020> (a org.eclipse.core.internal.jobs.WorkerPool)
at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:185)
- locked <0x16626020> (a org.eclipse.core.internal.jobs.WorkerPool)
at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:217)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:50)

Locked ownable synchronizers:
- None

“Timer-0” daemon prio=6 tid=0x47a27c00 nid=0x1894 in Object.wait() [0x4f86f000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x17bbefd0> (a java.util.TaskQueue)
at java.lang.Object.wait(Object.java:485)
at java.util.TimerThread.mainLoop(Timer.java:483)
- locked <0x17bbefd0> (a java.util.TaskQueue)
at java.util.TimerThread.run(Timer.java:462)

Locked ownable synchronizers:
- None

“Bundle File Closer” daemon prio=6 tid=0x47a27000 nid=0x1f74 in Object.wait() [0x4f21f000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x169e5df8> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
at java.lang.Object.wait(Object.java:485)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:397)
- locked <0x169e5df8> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:333)

Locked ownable synchronizers:
- None

“Worker-4” prio=6 tid=0x47a26400 nid=0x1468 waiting for monitor entry [0x4ea1f000]
java.lang.Thread.State: BLOCKED (on object monitor)
at org.eclipse.jface.text.source.AnnotationMap.keySetIterator(AnnotationMap.java:82)
- waiting to lock <0x17b71fe0> (a java.lang.Object)
at org.eclipse.jface.text.source.AnnotationModel.cleanup(AnnotationModel.java:663)
at org.eclipse.jface.text.source.AnnotationModel.cleanup(AnnotationModel.java:646)
at org.eclipse.jface.text.source.AnnotationModel.getAnnotationIterator(AnnotationModel.java:781)
at org.eclipse.jface.text.source.AnnotationModel.getAnnotationIterator(AnnotationModel.java:758)
at org.eclipse.jface.text.source.AnnotationModel.getAnnotationIterator(AnnotationModel.java:690)
at org.eclipse.imp.editor.internal.AnnotationCreator.removeAnnotations(AnnotationCreator.java:76)
at org.eclipse.imp.editor.internal.AnnotationCreator.clearMessages(AnnotationCreator.java:85)
at org.eclipse.imp.editor.ParserScheduler.run(ParserScheduler.java:85)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)

Locked ownable synchronizers:
- None

“Worker-3” prio=6 tid=0x47a26000 nid=0x1a30 in Object.wait() [0x4e61f000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x3c537c98> (a org.eclipse.core.internal.jobs.Semaphore)
at org.eclipse.core.internal.jobs.Semaphore.acquire(Semaphore.java:39)
- locked <0x3c537c98> (a org.eclipse.core.internal.jobs.Semaphore)
at org.eclipse.core.internal.jobs.OrderedLock.doAcquire(OrderedLock.java:176)
at org.eclipse.core.internal.jobs.OrderedLock.acquire(OrderedLock.java:110)
at org.eclipse.core.internal.jobs.OrderedLock.acquire(OrderedLock.java:84)
at org.eclipse.core.internal.resources.WorkManager.checkIn(WorkManager.java:118)
at org.eclipse.core.internal.resources.Workspace.prepareOperation(Workspace.java:1914)
at org.eclipse.core.internal.resources.SaveManager.save(SaveManager.java:1101)
at org.eclipse.core.internal.resources.SaveManager.save(SaveManager.java:1087)
at org.eclipse.core.internal.resources.DelayedSnapshotJob.run(DelayedSnapshotJob.java:44)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)

Locked ownable synchronizers:
- None

“Java indexing” daemon prio=4 tid=0x48b8a000 nid=0x508 in Object.wait() [0x4c6cf000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x16310628> (a org.eclipse.jdt.internal.core.search.indexing.IndexManager)
at java.lang.Object.wait(Object.java:485)
at org.eclipse.jdt.internal.core.search.processing.JobManager.run(JobManager.java:381)
- locked <0x16310628> (a org.eclipse.jdt.internal.core.search.indexing.IndexManager)
at java.lang.Thread.run(Thread.java:662)

Locked ownable synchronizers:
- None

“[ThreadPool Manager] - Idle Thread” daemon prio=6 tid=0x46a3b800 nid=0x1804 in Object.wait() [0x4b53f000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x16136e48> (a org.eclipse.equinox.internal.util.impl.tpt.threadpool.Executor)
at java.lang.Object.wait(Object.java:485)
at org.eclipse.equinox.internal.util.impl.tpt.threadpool.Executor.run(Executor.java:106)
- locked <0x16136e48> (a org.eclipse.equinox.internal.util.impl.tpt.threadpool.Executor)

Locked ownable synchronizers:
- None

“Worker-JM” prio=6 tid=0x47a20400 nid=0x1e34 in Object.wait() [0x4b13f000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x15bb9180> (a java.util.ArrayList)
at org.eclipse.core.internal.jobs.InternalWorker.run(InternalWorker.java:58)
- locked <0x15bb9180> (a java.util.ArrayList)

Locked ownable synchronizers:
- None

“[Timer] - Main Queue Handler” daemon prio=6 tid=0x46bdf800 nid=0x113c in Object.wait() [0x4ac8f000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x16137160> (a java.lang.Object)
at org.eclipse.equinox.internal.util.impl.tpt.timer.TimerImpl.run(TimerImpl.java:141)
- locked <0x16137160> (a java.lang.Object)
at java.lang.Thread.run(Thread.java:662)

Locked ownable synchronizers:
- None

“Framework Event Dispatcher” daemon prio=6 tid=0x4790fc00 nid=0xdf0 in Object.wait() [0x4a48f000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x16717980> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
at java.lang.Object.wait(Object.java:485)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:397)
- locked <0x16717980> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:333)

Locked ownable synchronizers:
- None

“Start Level Event Dispatcher” daemon prio=6 tid=0x46a83800 nid=0x1f20 in Object.wait() [0x4a08f000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x1606f380> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
at java.lang.Object.wait(Object.java:485)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:397)
- locked <0x1606f380> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:333)

Locked ownable synchronizers:
- None

“State Data Manager” daemon prio=6 tid=0x47909000 nid=0x1d74 waiting on condition [0x49c8f000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at org.eclipse.osgi.internal.baseadaptor.StateManager.run(StateManager.java:319)
at java.lang.Thread.run(Thread.java:662)

Locked ownable synchronizers:
- None

“Low Memory Detector” daemon prio=6 tid=0x469e2400 nid=0x1ae4 runnable [0x00000000]
java.lang.Thread.State: RUNNABLE

Locked ownable synchronizers:
- None

“CompilerThread1” daemon prio=10 tid=0x019edc00 nid=0x17f0 waiting on condition [0x00000000]
java.lang.Thread.State: RUNNABLE

Locked ownable synchronizers:
- None

“CompilerThread0” daemon prio=10 tid=0x019e1800 nid=0x19c8 waiting on condition [0x00000000]
java.lang.Thread.State: RUNNABLE

Locked ownable synchronizers:
- None

“Attach Listener” daemon prio=10 tid=0x019de400 nid=0x1d6c waiting on condition [0x00000000]
java.lang.Thread.State: RUNNABLE

Locked ownable synchronizers:
- None

“Signal Dispatcher” daemon prio=10 tid=0x019dd400 nid=0x1c4c runnable [0x00000000]
java.lang.Thread.State: RUNNABLE

Locked ownable synchronizers:
- None

“Finalizer” daemon prio=8 tid=0x019b4800 nid=0x1534 in Object.wait() [0x4618f000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x155cf048> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
- locked <0x155cf048> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)

Locked ownable synchronizers:
- None

“Reference Handler” daemon prio=10 tid=0x019ae000 nid=0x1a00 in Object.wait() [0x45d8f000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x155cf068> (a java.lang.ref.Reference$Lock)
at java.lang.Object.wait(Object.java:485)
at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
- locked <0x155cf068> (a java.lang.ref.Reference$Lock)

Locked ownable synchronizers:
- None

“main” prio=6 tid=0x01449400 nid=0x1f48 in Object.wait() [0x0258c000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x3c544e18> (a org.eclipse.core.internal.jobs.Semaphore)
at org.eclipse.core.internal.jobs.Semaphore.acquire(Semaphore.java:39)
- locked <0x3c544e18> (a org.eclipse.core.internal.jobs.Semaphore)
at org.eclipse.core.internal.jobs.OrderedLock.doAcquire(OrderedLock.java:176)
at org.eclipse.core.internal.jobs.OrderedLock.acquire(OrderedLock.java:110)
at org.eclipse.core.internal.jobs.OrderedLock.acquire(OrderedLock.java:84)
at org.eclipse.core.internal.resources.WorkManager.checkIn(WorkManager.java:118)
at org.eclipse.core.internal.resources.Workspace.prepareOperation(Workspace.java:1914)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1970)
at org.eclipse.ui.actions.WorkspaceModifyOperation.run(WorkspaceModifyOperation.java:118)
- locked <0x3c544e40> (a org.eclipse.ui.actions.WorkspaceModifyDelegatingOperation)
at org.eclipse.ui.internal.editors.text.WorkspaceOperationRunner.run(WorkspaceOperationRunner.java:75)
at org.eclipse.ui.internal.editors.text.WorkspaceOperationRunner.run(WorkspaceOperationRunner.java:65)
at org.eclipse.ui.editors.text.TextFileDocumentProvider.executeOperation(TextFileDocumentProvider.java:456)
at org.eclipse.ui.editors.text.TextFileDocumentProvider.validateState(TextFileDocumentProvider.java:1074)
at org.eclipse.ui.texteditor.AbstractTextEditor.validateState(AbstractTextEditor.java:4767)
at org.eclipse.ui.texteditor.AbstractTextEditor.doSave(AbstractTextEditor.java:4667)
at org.eclipse.imp.editor.UniversalEditor.doSave(UniversalEditor.java:1935)
at org.eclipse.ui.texteditor.AbstractTextEditor$TextEditorSavable.doSave(AbstractTextEditor.java:7003)
at org.eclipse.ui.Saveable.doSave(Saveable.java:214)
at org.eclipse.ui.internal.SaveableHelper.doSaveModel(SaveableHelper.java:349)
at org.eclipse.ui.internal.SaveableHelper$3.run(SaveableHelper.java:195)
at org.eclipse.ui.internal.SaveableHelper$5.run(SaveableHelper.java:277)
at org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:464)
at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:372)
at org.eclipse.jface.window.ApplicationWindow$1.run(ApplicationWindow.java:759)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
at org.eclipse.jface.window.ApplicationWindow.run(ApplicationWindow.java:756)
at org.eclipse.ui.internal.WorkbenchWindow.run(WorkbenchWindow.java:2606)
at org.eclipse.ui.internal.SaveableHelper.runProgressMonitorOperation(SaveableHelper.java:285)
at org.eclipse.ui.internal.SaveableHelper.runProgressMonitorOperation(SaveableHelper.java:264)
at org.eclipse.ui.internal.SaveableHelper.saveModels(SaveableHelper.java:207)
at org.eclipse.ui.internal.SaveableHelper.savePart(SaveableHelper.java:144)
at org.eclipse.ui.internal.EditorManager.savePart(EditorManager.java:1369)
at org.eclipse.ui.internal.WorkbenchPage.savePart(WorkbenchPage.java:3334)
at org.eclipse.ui.internal.WorkbenchPage.saveEditor(WorkbenchPage.java:3347)
at org.eclipse.ui.internal.SaveAction.run(SaveAction.java:76)
at org.eclipse.jface.action.Action.runWithEvent(Action.java:498)
at org.eclipse.ui.commands.ActionHandler.execute(ActionHandler.java:185)
at org.eclipse.ui.internal.handlers.LegacyHandlerWrapper.execute(LegacyHandlerWrapper.java:109)
at org.eclipse.core.commands.Command.executeWithChecks(Command.java:476)
at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508)
at org.eclipse.ui.internal.handlers.HandlerService.executeCommand(HandlerService.java:169)
at org.eclipse.ui.internal.keys.WorkbenchKeyboard.executeCommand(WorkbenchKeyboard.java:468)
at org.eclipse.ui.internal.keys.WorkbenchKeyboard.press(WorkbenchKeyboard.java:786)
at org.eclipse.ui.internal.keys.WorkbenchKeyboard.processKeyEvent(WorkbenchKeyboard.java:885)
at org.eclipse.ui.internal.keys.WorkbenchKeyboard.filterKeySequenceBindings(WorkbenchKeyboard.java:567)
at org.eclipse.ui.internal.keys.WorkbenchKeyboard.access$3(WorkbenchKeyboard.java:508)
at org.eclipse.ui.internal.keys.WorkbenchKeyboard$KeyDownFilter.handleEvent(WorkbenchKeyboard.java:123)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Display.filterEvent(Display.java:1253)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1052)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1077)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1062)
at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1103)
at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1099)
at org.eclipse.swt.widgets.Widget.wmChar(Widget.java:1508)
at org.eclipse.swt.widgets.Control.WM_CHAR(Control.java:4270)
at org.eclipse.swt.widgets.Canvas.WM_CHAR(Canvas.java:345)
at org.eclipse.swt.widgets.Control.windowProc(Control.java:4162)
at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:341)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:4873)
at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2459)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3655)
at org.strategoxt.imp.runtime.SWTSafeLock.lock(SWTSafeLock.java:42)
at org.strategoxt.imp.runtime.services.ContentProposer$1Runner.run(ContentProposer.java:177)
at org.strategoxt.imp.runtime.services.ContentProposer.invokeCompletionFunction(ContentProposer.java:201)
at org.strategoxt.imp.runtime.services.ContentProposer.getContentProposals(ContentProposer.java:84)
at org.strategoxt.imp.runtime.dynamicloading.DynamicContentProposer.getContentProposals(DynamicContentProposer.java:19)
at org.eclipse.imp.editor.internal.CompletionProcessor.computeCompletionProposals(CompletionProcessor.java:53)
at org.eclipse.jface.text.contentassist.ContentAssistant.computeCompletionProposals(ContentAssistant.java:1834)
at org.eclipse.jface.text.contentassist.CompletionProposalPopup.computeProposals(CompletionProposalPopup.java:556)
at org.eclipse.jface.text.contentassist.CompletionProposalPopup.access$16(CompletionProposalPopup.java:553)
at org.eclipse.jface.text.contentassist.CompletionProposalPopup$2.run(CompletionProposalPopup.java:488)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
at org.eclipse.jface.text.contentassist.CompletionProposalPopup.showProposals(CompletionProposalPopup.java:482)
at org.eclipse.jface.text.contentassist.ContentAssistant.showPossibleCompletions(ContentAssistant.java:1660)
at org.eclipse.jface.text.source.SourceViewer.doOperation(SourceViewer.java:919)
at org.eclipse.jface.text.source.projection.ProjectionViewer.doOperation(ProjectionViewer.java:1534)
at org.eclipse.imp.editor.StructuredSourceViewer.doOperation(StructuredSourceViewer.java:132)
at org.strategoxt.imp.runtime.services.ContentProposerListener.textChanged(ContentProposerListener.java:63)
at org.eclipse.jface.text.TextViewer.updateTextListeners(TextViewer.java:2820)
at org.eclipse.jface.text.TextViewer$VisibleDocumentListener.documentChanged(TextViewer.java:401)
at org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged2(AbstractDocument.java:769)
at org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged(AbstractDocument.java:736)
at org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged(AbstractDocument.java:721)
at org.eclipse.jface.text.AbstractDocument.fireDocumentChanged(AbstractDocument.java:796)
at org.eclipse.jface.text.projection.ProjectionDocument.fireDocumentChanged(ProjectionDocument.java:777)
at org.eclipse.jface.text.projection.ProjectionDocument.masterDocumentChanged(ProjectionDocument.java:746)
at org.eclipse.jface.text.projection.ProjectionDocumentManager.fireDocumentEvent(ProjectionDocumentManager.java:123)
at org.eclipse.jface.text.projection.ProjectionDocumentManager.documentChanged(ProjectionDocumentManager.java:131)
at org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged2(AbstractDocument.java:769)
at org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged(AbstractDocument.java:736)
at org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged(AbstractDocument.java:721)
at org.eclipse.jface.text.AbstractDocument.fireDocumentChanged(AbstractDocument.java:796)
at org.eclipse.jface.text.AbstractDocument.replace(AbstractDocument.java:1191)
at org.eclipse.core.internal.filebuffers.SynchronizableDocument.replace(SynchronizableDocument.java:195)
- locked <0x17b71fe0> (a java.lang.Object)
at org.eclipse.jface.text.AbstractDocument.replace(AbstractDocument.java:1210)
at org.eclipse.core.internal.filebuffers.SynchronizableDocument.replace(SynchronizableDocument.java:181)
- locked <0x17b71fe0> (a java.lang.Object)
at org.strategoxt.imp.runtime.services.AutoEditStrategy.insertClosingFence(AutoEditStrategy.java:229)
at org.strategoxt.imp.runtime.services.AutoEditStrategy.verifyKey(AutoEditStrategy.java:127)
at org.strategoxt.imp.runtime.dynamicloading.DynamicAutoEditStrategy.verifyKey(DynamicAutoEditStrategy.java:36)
at org.eclipse.jface.text.TextViewer$VerifyKeyListenersManager.verifyKey(TextViewer.java:489)
at org.eclipse.swt.custom.StyledTextListener.handleEvent(StyledTextListener.java:65)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1077)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1062)
at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:774)
at org.eclipse.swt.custom.StyledText.handleKeyDown(StyledText.java:5957)
at org.eclipse.swt.custom.StyledText$7.handleEvent(StyledText.java:5656)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1077)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1062)
at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1103)
at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1099)
at org.eclipse.swt.widgets.Widget.wmChar(Widget.java:1508)
at org.eclipse.swt.widgets.Control.WM_CHAR(Control.java:4270)
at org.eclipse.swt.widgets.Canvas.WM_CHAR(Canvas.java:345)
at org.eclipse.swt.widgets.Control.windowProc(Control.java:4162)
at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:341)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:4873)
at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2459)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3655)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438)
at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:115)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
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:597)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:620)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:575)
at org.eclipse.equinox.launcher.Main.run(Main.java:1408)
at org.eclipse.equinox.launcher.Main.main(Main.java:1384)

Locked ownable synchronizers:
- None

“VM Thread” prio=10 tid=0x019ab800 nid=0x1624 runnable

“GC task thread#0 (ParallelGC)” prio=6 tid=0x01904c00 nid=0x1980 runnable

“GC task thread#1 (ParallelGC)” prio=6 tid=0x01906000 nid=0x12b8 runnable

“VM Periodic Task Thread” prio=10 tid=0x019eec00 nid=0x1b04 waiting on condition

JNI global references: 2033

Submitted by Tobi Vollebregt on 1 September 2011 at 17:17

On 5 September 2011 at 17:47 Lennart Kats commented:

On 5 September 2011 at 17:47 Lennart Kats closed this issue.

On 5 September 2011 at 17:47 Lennart Kats reopened this issue.

On 5 September 2011 at 17:48 Lennart Kats commented:

Ugh, never mind the closing and re-opening of this issue.

Here’s a somewhat cleaned up stack trace:

"Worker-8" prio=6 tid=0x47a26c00 nid=0x18cc waiting for monitor entry [0x4c03f000]
   java.lang.Thread.State: BLOCKED (on object monitor)
    at org.eclipse.jface.text.source.AnnotationMap.containsKey(AnnotationMap.java:91)
    - waiting to lock <0x17b71fe0> (a java.lang.Object)
    at org.eclipse.jface.text.source.AnnotationModel.addAnnotation(AnnotationModel.java:437)
    at org.eclipse.ui.texteditor.AbstractMarkerAnnotationModel.addMarkerAnnotation(AbstractMarkerAnnotationModel.java:228)
    at org.eclipse.ui.texteditor.ResourceMarkerAnnotationModel.batchedUpdate(ResourceMarkerAnnotationModel.java:130)
    at org.eclipse.ui.texteditor.ResourceMarkerAnnotationModel.update(ResourceMarkerAnnotationModel.java:112)
    at org.eclipse.ui.texteditor.ResourceMarkerAnnotationModel$ResourceChangeListener.resourceChanged(ResourceMarkerAnnotationModel.java:56)
    at org.eclipse.core.internal.events.NotificationManager$2.run(NotificationManager.java:291)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
    at org.eclipse.core.internal.events.NotificationManager.notify(NotificationManager.java:285)
    at org.eclipse.core.internal.events.NotificationManager.broadcastChanges(NotificationManager.java:149)
    at org.eclipse.core.internal.resources.Workspace.broadcastPostChange(Workspace.java:327)
    at org.eclipse.core.internal.resources.Workspace.endOperation(Workspace.java:1181)
    at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1984)
    at org.strategoxt.imp.runtime.parser.ast.AstMessageBatch.runInWorkspace(AstMessageBatch.java:319)
    at org.strategoxt.imp.runtime.parser.ast.AstMessageBatch.commitAllChanges(AstMessageBatch.java:149)
    at org.strategoxt.imp.runtime.parser.ast.AstMessageHandler.commitAllChanges(AstMessageHandler.java:221)
    at org.strategoxt.imp.runtime.services.StrategoObserver.presentToUser(StrategoObserver.java:590)
    at org.strategoxt.imp.runtime.services.StrategoObserver.update(StrategoObserver.java:508)
    at org.strategoxt.imp.runtime.services.StrategoObserverUpdateJob.analyze(StrategoObserverUpdateJob.java:30)
    at org.strategoxt.imp.runtime.services.StrategoAnalysisQueue$UpdateJob.run(StrategoAnalysisQueue.java:88)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)

   Locked ownable synchronizers:
    - <0x15ff5418> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)

"Worker-4" prio=6 tid=0x47a26400 nid=0x1468 waiting for monitor entry [0x4ea1f000]
   java.lang.Thread.State: BLOCKED (on object monitor)
    at org.eclipse.jface.text.source.AnnotationMap.keySetIterator(AnnotationMap.java:82)
    - waiting to lock <0x17b71fe0> (a java.lang.Object)
    at org.eclipse.jface.text.source.AnnotationModel.cleanup(AnnotationModel.java:663)
    at org.eclipse.jface.text.source.AnnotationModel.cleanup(AnnotationModel.java:646)
    at org.eclipse.jface.text.source.AnnotationModel.getAnnotationIterator(AnnotationModel.java:781)
    at org.eclipse.jface.text.source.AnnotationModel.getAnnotationIterator(AnnotationModel.java:758)
    at org.eclipse.jface.text.source.AnnotationModel.getAnnotationIterator(AnnotationModel.java:690)
    at org.eclipse.imp.editor.internal.AnnotationCreator.removeAnnotations(AnnotationCreator.java:76)
    at org.eclipse.imp.editor.internal.AnnotationCreator.clearMessages(AnnotationCreator.java:85)
    at org.eclipse.imp.editor.ParserScheduler.run(ParserScheduler.java:85)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)


"main" prio=6 tid=0x01449400 nid=0x1f48 in Object.wait() [0x0258c000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x3c544e18> (a org.eclipse.core.internal.jobs.Semaphore)
    at org.eclipse.core.internal.jobs.Semaphore.acquire(Semaphore.java:39)
    - locked <0x3c544e18> (a org.eclipse.core.internal.jobs.Semaphore)
    at org.eclipse.core.internal.jobs.OrderedLock.doAcquire(OrderedLock.java:176)
    at org.eclipse.core.internal.jobs.OrderedLock.acquire(OrderedLock.java:110)
    at org.eclipse.core.internal.jobs.OrderedLock.acquire(OrderedLock.java:84)
    at org.eclipse.core.internal.resources.WorkManager.checkIn(WorkManager.java:118)
    at org.eclipse.core.internal.resources.Workspace.prepareOperation(Workspace.java:1914)
    at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1970)
    at org.eclipse.ui.actions.WorkspaceModifyOperation.run(WorkspaceModifyOperation.java:118)
    - locked <0x3c544e40> (a org.eclipse.ui.actions.WorkspaceModifyDelegatingOperation)
    at org.eclipse.ui.internal.editors.text.WorkspaceOperationRunner.run(WorkspaceOperationRunner.java:75)
    at org.eclipse.ui.internal.editors.text.WorkspaceOperationRunner.run(WorkspaceOperationRunner.java:65)
    at org.eclipse.ui.editors.text.TextFileDocumentProvider.executeOperation(TextFileDocumentProvider.java:456)
    at org.eclipse.ui.editors.text.TextFileDocumentProvider.validateState(TextFileDocumentProvider.java:1074)
    at org.eclipse.ui.texteditor.AbstractTextEditor.validateState(AbstractTextEditor.java:4767)
    at org.eclipse.ui.texteditor.AbstractTextEditor.doSave(AbstractTextEditor.java:4667)
    at org.eclipse.imp.editor.UniversalEditor.doSave(UniversalEditor.java:1935)
    at org.eclipse.ui.texteditor.AbstractTextEditor$TextEditorSavable.doSave(AbstractTextEditor.java:7003)
    at org.eclipse.ui.Saveable.doSave(Saveable.java:214)
    at org.eclipse.ui.internal.SaveableHelper.doSaveModel(SaveableHelper.java:349)
    at org.eclipse.ui.internal.SaveableHelper$3.run(SaveableHelper.java:195)
    at org.eclipse.ui.internal.SaveableHelper$5.run(SaveableHelper.java:277)
    [...]
    at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
    at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2459)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3655)
    at org.strategoxt.imp.runtime.SWTSafeLock.lock(SWTSafeLock.java:42)
    at org.strategoxt.imp.runtime.services.ContentProposer$1Runner.run(ContentProposer.java:177)
    [...]
    at org.strategoxt.imp.runtime.services.ContentProposerListener.textChanged(ContentProposerListener.java:63)
    at org.eclipse.jface.text.TextViewer.updateTextListeners(TextViewer.java:2820)
    at org.eclipse.jface.text.TextViewer$VisibleDocumentListener.documentChanged(TextViewer.java:401)
    at org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged2(AbstractDocument.java:769)
    at org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged(AbstractDocument.java:736)
    at org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged(AbstractDocument.java:721)
    at org.eclipse.jface.text.AbstractDocument.fireDocumentChanged(AbstractDocument.java:796)
    at org.eclipse.jface.text.projection.ProjectionDocument.fireDocumentChanged(ProjectionDocument.java:777)
    at org.eclipse.jface.text.projection.ProjectionDocument.masterDocumentChanged(ProjectionDocument.java:746)
    at org.eclipse.jface.text.projection.ProjectionDocumentManager.fireDocumentEvent(ProjectionDocumentManager.java:123)
    at org.eclipse.jface.text.projection.ProjectionDocumentManager.documentChanged(ProjectionDocumentManager.java:131)
    at org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged2(AbstractDocument.java:769)
    at org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged(AbstractDocument.java:736)
    at org.eclipse.jface.text.AbstractDocument.doFireDocumentChanged(AbstractDocument.java:721)
    at org.eclipse.jface.text.AbstractDocument.fireDocumentChanged(AbstractDocument.java:796)
    at org.eclipse.jface.text.AbstractDocument.replace(AbstractDocument.java:1191)
    at org.eclipse.core.internal.filebuffers.SynchronizableDocument.replace(SynchronizableDocument.java:195)
    - locked <0x17b71fe0> (a java.lang.Object)
    at org.eclipse.jface.text.AbstractDocument.replace(AbstractDocument.java:1210)
    at org.eclipse.core.internal.filebuffers.SynchronizableDocument.replace(SynchronizableDocument.java:181)
    - locked <0x17b71fe0> (a java.lang.Object)
    at org.strategoxt.imp.runtime.services.AutoEditStrategy.insertClosingFence(AutoEditStrategy.java:229)
    [...]


On 5 September 2011 at 17:56 Lennart Kats commented:

There seem to be quite a number of things at play here: first, two threads working on annotations. My guess is that they have a workspace lock and wait for a UI lock. Meanwhile, the main thread was doing bracket insertion, triggered content completion, and got tired of waiting for the Environment lock and started handling UI events. At that point things went wrong; there’s a FIXME about that in ContentProposer.invokeCompletionFunction(). I’m not sure how to fix that at this point.


On 5 September 2011 at 17:56 Lennart Kats tagged runtime

On 8 January 2013 at 14:55 Eelco Visser tagged 1.1

On 30 January 2013 at 13:07 Vlad Vergu tagged unconfirmed

On 30 January 2013 at 13:07 Vlad Vergu commented:

The FIXME is no longer there, is this issue still valid?


On 30 January 2013 at 13:51 Vlad Vergu commented:

Issue cannot be confirmed anymore because the ContentProposer has been refactored. Please reopen with new information if needed.


On 30 January 2013 at 13:51 Vlad Vergu closed this issue.

On 30 January 2013 at 13:51 Vlad Vergu removed tag 1.1

Log in to post comments