Deadlock
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: RUNNABLELocked ownable synchronizers:
- None“CompilerThread1” daemon prio=10 tid=0x019edc00 nid=0x17f0 waiting on condition [0x00000000]
java.lang.Thread.State: RUNNABLELocked ownable synchronizers:
- None“CompilerThread0” daemon prio=10 tid=0x019e1800 nid=0x19c8 waiting on condition [0x00000000]
java.lang.Thread.State: RUNNABLELocked ownable synchronizers:
- None“Attach Listener” daemon prio=10 tid=0x019de400 nid=0x1d6c waiting on condition [0x00000000]
java.lang.Thread.State: RUNNABLELocked ownable synchronizers:
- None“Signal Dispatcher” daemon prio=10 tid=0x019dd400 nid=0x1c4c runnable [0x00000000]
java.lang.Thread.State: RUNNABLELocked 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
Issue Log
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) [...]
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 aFIXME
about that in ContentProposer.invokeCompletionFunction(). I’m not sure how to fix that at this point.
The
FIXME
is no longer there, is this issue still valid?
Issue cannot be confirmed anymore because the ContentProposer has been refactored. Please reopen with new information if needed.
Log in to post comments