Community
Participate
Working Groups
java.util.ConcurrentModificationException at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372) at java.util.AbstractList$Itr.next(AbstractList.java:343) at org.eclipse.mylyn.internal.sandbox.ui.highlighters.HighlighterList.getHighlighter(HighlighterList.java:85) at org.eclipse.mylyn.internal.sandbox.ui.SandboxUiPlugin.getHighlighter(SandboxUiPlugin.java:175) at org.eclipse.mylyn.internal.sandbox.ui.SandboxUiPlugin.getHighlighterForContextId(SandboxUiPlugin.java:186) at org.eclipse.mylyn.internal.sandbox.ui.highlighters.TaskHighlighter.decorate(TaskHighlighter.java:42) at org.eclipse.ui.internal.decorators.LightweightDecoratorDefinition.decorate(LightweightDecoratorDefinition.java:269) at org.eclipse.ui.internal.decorators.LightweightDecoratorManager$LightweightRunnable.run(LightweightDecoratorManager.java:72) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37) at org.eclipse.ui.internal.decorators.LightweightDecoratorManager.decorate(LightweightDecoratorManager.java:356) at org.eclipse.ui.internal.decorators.LightweightDecoratorManager.getDecorations(LightweightDecoratorManager.java:338) at org.eclipse.ui.internal.decorators.DecorationScheduler$1.ensureResultCached(DecorationScheduler.java:374) at org.eclipse.ui.internal.decorators.DecorationScheduler$1.run(DecorationScheduler.java:334) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
2008-06-22 01:01:37 Full thread dump Java HotSpot(TM) Server VM (1.6.0-b105 mixed mode): "pool-1-thread-2" prio=10 tid=0x08820400 nid=0x1ab8 waiting on condition [0x8d22c000..0x8d22d030] java.lang.Thread.State: TIMED_WAITING (parking) at sun.misc.Unsafe.park(Native Method) - parking to wait for <0xb3075c88> (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:944) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:906) at java.lang.Thread.run(Thread.java:619) "MultiThreadedHttpConnectionManager cleanup" daemon prio=10 tid=0x085f6800 nid=0x1ab7 in Object.wait() [0x8d27d000..0x8d27e0b0] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0xb2b7fa38> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116) - locked <0xb2b7fa38> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132) at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$ReferenceQueueThread.run(MultiThreadedHttpConnectionManager.java:1122) "pool-1-thread-1" prio=10 tid=0x0881e400 nid=0x1ab6 runnable [0x8d2ce000..0x8d2cf130] 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 <0xb30a65c8> (a java.io.BufferedInputStream) at org.apache.commons.httpclient.HttpParser.readRawLine(HttpParser.java:78) at org.apache.commons.httpclient.HttpParser.readLine(HttpParser.java:106) at org.apache.commons.httpclient.HttpConnection.readLine(HttpConnection.java:1116) at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$HttpConnectionAdapter.readLine(MultiThreadedHttpConnectionManager.java:1413) at org.apache.commons.httpclient.HttpMethodBase.readStatusLine(HttpMethodBase.java:1973) at org.apache.commons.httpclient.HttpMethodBase.readResponse(HttpMethodBase.java:1735) at org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:1098) at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:398) at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171) at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397) at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:346) at org.eclipse.mylyn.commons.net.WebUtil$2.call(WebUtil.java:270) at org.eclipse.mylyn.commons.net.WebUtil$2.call(WebUtil.java:1) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) at java.lang.Thread.run(Thread.java:619) "Timer-1" prio=10 tid=0x08a01000 nid=0x1ab4 in Object.wait() [0x8d31f000..0x8d31fdb0] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0xb2fcc538> (a java.util.TaskQueue) at java.util.TimerThread.mainLoop(Timer.java:509) - locked <0xb2fcc538> (a java.util.TaskQueue) at java.util.TimerThread.run(Timer.java:462) "Worker-5" prio=10 tid=0x085aac00 nid=0x1ab3 in Object.wait() [0x8d370000..0x8d370e30] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x95cbe080> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:185) - locked <0x95cbe080> (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:51) "Worker-4" prio=10 tid=0x085aa800 nid=0x1ab2 in Object.wait() [0x8d3c1000..0x8d3c1eb0] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x95aff8b0> (a org.eclipse.swt.internal.Lock) at java.lang.Object.wait(Object.java:485) at org.eclipse.swt.internal.Lock.lock(Lock.java:34) - locked <0x95aff8b0> (a org.eclipse.swt.internal.Lock) at org.eclipse.swt.internal.gtk.OS.gdk_colormap_get_system(OS.java:2386) at org.eclipse.swt.graphics.Color.init(Color.java:245) at org.eclipse.swt.graphics.Color.<init>(Color.java:77) at org.eclipse.mylyn.internal.context.ui.ColorMap.<clinit>(ColorMap.java:22) at org.eclipse.mylyn.internal.sandbox.ui.highlighters.HighlighterList.<clinit>(HighlighterList.java:23) at org.eclipse.mylyn.internal.sandbox.ui.SandboxUiPlugin.initializeHighlighters(SandboxUiPlugin.java:149) at org.eclipse.mylyn.internal.sandbox.ui.SandboxUiPlugin.getHighlighter(SandboxUiPlugin.java:173) at org.eclipse.mylyn.internal.sandbox.ui.SandboxUiPlugin.getHighlighterForContextId(SandboxUiPlugin.java:186) at org.eclipse.mylyn.internal.sandbox.ui.highlighters.TaskHighlighter.decorate(TaskHighlighter.java:42) at org.eclipse.ui.internal.decorators.LightweightDecoratorDefinition.decorate(LightweightDecoratorDefinition.java:269) at org.eclipse.ui.internal.decorators.LightweightDecoratorManager$LightweightRunnable.run(LightweightDecoratorManager.java:72) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37) at org.eclipse.ui.internal.decorators.LightweightDecoratorManager.decorate(LightweightDecoratorManager.java:356) at org.eclipse.ui.internal.decorators.LightweightDecoratorManager.getDecorations(LightweightDecoratorManager.java:338) at org.eclipse.ui.internal.decorators.DecorationScheduler$1.ensureResultCached(DecorationScheduler.java:374) at org.eclipse.ui.internal.decorators.DecorationScheduler$1.run(DecorationScheduler.java:334) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55) "Worker-3" prio=10 tid=0x085aa000 nid=0x1ab1 in Object.wait() [0x8d412000..0x8d412f30] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x9624ed58> (a org.eclipse.mylyn.internal.tasks.ui.OfflineCachingStorage$CacheFlushJob) at java.lang.Object.wait(Object.java:485) at org.eclipse.mylyn.internal.tasks.ui.OfflineCachingStorage$CacheFlushJob.run(OfflineCachingStorage.java:239) - locked <0x9624ed58> (a org.eclipse.mylyn.internal.tasks.ui.OfflineCachingStorage$CacheFlushJob) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55) "Worker-2" prio=10 tid=0x085afc00 nid=0x1ab0 in Object.wait() [0x8fc26000..0x8fc26fb0] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x95cbe080> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:185) - locked <0x95cbe080> (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:51) "Worker-1" prio=10 tid=0x085af400 nid=0x1aaf waiting on condition [0x8f9d2000..0x8f9d3030] java.lang.Thread.State: TIMED_WAITING (parking) at sun.misc.Unsafe.park(Native Method) - parking to wait for <0xb3075e48> (a java.util.concurrent.FutureTask$Sync) at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198) at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedNanos(AbstractQueuedSynchronizer.java:912) at java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireSharedNanos(AbstractQueuedSynchronizer.java:1204) at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:227) at java.util.concurrent.FutureTask.get(FutureTask.java:91) at org.eclipse.mylyn.commons.net.WebUtil.execute(WebUtil.java:303) at org.eclipse.mylyn.commons.net.WebUtil.executeInternal(WebUtil.java:314) at org.eclipse.mylyn.commons.net.WebUtil.execute(WebUtil.java:274) at org.eclipse.mylyn.internal.trac.core.client.TracWebClient$Request.execute(TracWebClient.java:100) at org.eclipse.mylyn.internal.trac.core.client.TracWebClient.connect(TracWebClient.java:203) - locked <0xb2b64918> (a org.eclipse.mylyn.internal.trac.core.client.TracWebClient) at org.eclipse.mylyn.internal.trac.core.client.TracWebClient.updateAttributes(TracWebClient.java:445) at org.eclipse.mylyn.internal.trac.core.client.AbstractTracClient.updateAttributes(AbstractTracClient.java:167) at org.eclipse.mylyn.internal.trac.core.TracRepositoryConnector.updateRepositoryConfiguration(TracRepositoryConnector.java:584) at org.eclipse.mylyn.internal.tasks.core.sync.SynchronizeRepositoriesJob.updateRepositoryConfiguration(SynchronizeRepositoriesJob.java:126) at org.eclipse.mylyn.internal.tasks.core.sync.SynchronizeRepositoriesJob.run(SynchronizeRepositoriesJob.java:82) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55) "Timer-0" prio=10 tid=0x080e5c00 nid=0x1aa9 in Object.wait() [0x8fbd5000..0x8fbd60b0] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x9624fac8> (a java.util.TaskQueue) at java.util.TimerThread.mainLoop(Timer.java:509) - locked <0x9624fac8> (a java.util.TaskQueue) at java.util.TimerThread.run(Timer.java:462) "Java indexing" daemon prio=10 tid=0x086b8c00 nid=0x1aa8 in Object.wait() [0x8fc90000..0x8fc91130] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x961a3f50> (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:371) - locked <0x961a3f50> (a org.eclipse.jdt.internal.core.search.indexing.IndexManager) at java.lang.Thread.run(Thread.java:619) "Worker-0" prio=10 tid=0x900c3c00 nid=0x1aa5 in Object.wait() [0x9044d000..0x9044deb0] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x95cbe080> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:185) - locked <0x95cbe080> (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:51) "Start Level Event Dispatcher" daemon prio=10 tid=0x08705000 nid=0x1aa4 in Object.wait() [0x903ab000..0x903abf30] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x95cb8d28> (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:377) - locked <0x95cb8d28> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread) at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:317) "Framework Event Dispatcher" daemon prio=10 tid=0x083a2000 nid=0x1aa3 in Object.wait() [0x903fc000..0x903fcfb0] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x95cb8da0> (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:377) - locked <0x95cb8da0> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread) at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:317) "State Data Manager" daemon prio=10 tid=0x9051d800 nid=0x1aa0 waiting on condition [0x9049e000..0x9049f0b0] java.lang.Thread.State: TIMED_WAITING (sleeping) at java.lang.Thread.sleep(Native Method) at org.eclipse.osgi.internal.baseadaptor.StateManager.run(StateManager.java:297) at java.lang.Thread.run(Thread.java:619) "Low Memory Detector" daemon prio=10 tid=0x0815cc00 nid=0x1a9c runnable [0x00000000..0x00000000] java.lang.Thread.State: RUNNABLE "CompilerThread1" daemon prio=10 tid=0x0815ac00 nid=0x1a9b waiting on condition [0x00000000..0x9101e448] java.lang.Thread.State: RUNNABLE "CompilerThread0" daemon prio=10 tid=0x08159800 nid=0x1a9a waiting on condition [0x00000000..0x9109f4c8] java.lang.Thread.State: RUNNABLE "JDWP Command Reader" daemon prio=10 tid=0x0814d800 nid=0x1a96 runnable [0x00000000..0x00000000] java.lang.Thread.State: RUNNABLE "JDWP Event Helper Thread" daemon prio=10 tid=0x0814c000 nid=0x1a94 runnable [0x00000000..0x00000000] java.lang.Thread.State: RUNNABLE "JDWP Transport Listener: dt_socket" daemon prio=10 tid=0x0814a000 nid=0x1a92 runnable [0x00000000..0x91192d80] java.lang.Thread.State: RUNNABLE "Signal Dispatcher" daemon prio=10 tid=0x08142800 nid=0x1a8f waiting on condition [0x00000000..0x00000000] java.lang.Thread.State: RUNNABLE "Finalizer" daemon prio=10 tid=0x08130000 nid=0x1a8e in Object.wait() [0x91238000..0x91239130] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x95909028> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116) - locked <0x95909028> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132) at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159) "Reference Handler" daemon prio=10 tid=0x0812f400 nid=0x1a8d in Object.wait() [0x91289000..0x91289db0] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x95909180> (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 <0x95909180> (a java.lang.ref.Reference$Lock) "main" prio=10 tid=0x0806b000 nid=0x1a89 in Object.wait() [0xb7d8f000..0xb7d92208] java.lang.Thread.State: RUNNABLE at org.eclipse.mylyn.internal.sandbox.ui.SandboxUiPlugin.initializeHighlighters(SandboxUiPlugin.java:149) at org.eclipse.mylyn.internal.sandbox.ui.SandboxUiPlugin.getHighlighter(SandboxUiPlugin.java:173) at org.eclipse.mylyn.internal.sandbox.ui.SandboxUiPlugin.getHighlighterForContextId(SandboxUiPlugin.java:186) at org.eclipse.mylyn.internal.sandbox.ui.highlighters.TaskHighlighter.getHighlightColor(TaskHighlighter.java:55) at org.eclipse.mylyn.tasks.ui.TaskElementLabelProvider.getBackground(TaskElementLabelProvider.java:237) at org.eclipse.jface.viewers.DecoratingLabelProvider.getBackground(DecoratingLabelProvider.java:268) at org.eclipse.mylyn.internal.tasks.ui.views.TaskTableLabelProvider.getBackground(TaskTableLabelProvider.java:85) at org.eclipse.jface.viewers.TableColumnViewerLabelProvider.update(TableColumnViewerLabelProvider.java:82) at org.eclipse.jface.viewers.ViewerColumn.refresh(ViewerColumn.java:145) at org.eclipse.jface.viewers.AbstractTreeViewer.doUpdateItem(AbstractTreeViewer.java:932) at org.eclipse.jface.viewers.AbstractTreeViewer$UpdateItemSafeRunnable.run(AbstractTreeViewer.java:102) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37) at org.eclipse.core.runtime.Platform.run(Platform.java:880) at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:48) at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:175) at org.eclipse.jface.viewers.AbstractTreeViewer.doUpdateItem(AbstractTreeViewer.java:1012) at org.eclipse.jface.viewers.StructuredViewer$UpdateItemSafeRunnable.run(StructuredViewer.java:466) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37) at org.eclipse.core.runtime.Platform.run(Platform.java:880) at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:48) at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:175) at org.eclipse.jface.viewers.StructuredViewer.updateItem(StructuredViewer.java:2041) at org.eclipse.jface.viewers.AbstractTreeViewer.updateChildren(AbstractTreeViewer.java:2675) at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefreshStruct(AbstractTreeViewer.java:1856) at org.eclipse.jface.viewers.TreeViewer.internalRefreshStruct(TreeViewer.java:711) at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefreshStruct(AbstractTreeViewer.java:1863) at org.eclipse.jface.viewers.TreeViewer.internalRefreshStruct(TreeViewer.java:711) at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefresh(AbstractTreeViewer.java:1831) at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefresh(AbstractTreeViewer.java:1787) at org.eclipse.jface.viewers.StructuredViewer$8.run(StructuredViewer.java:1457) at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1365) at org.eclipse.jface.viewers.TreeViewer.preservingSelection(TreeViewer.java:397) at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1328) at org.eclipse.jface.viewers.StructuredViewer.refresh(StructuredViewer.java:1455) at org.eclipse.jface.viewers.ColumnViewer.refresh(ColumnViewer.java:548) at org.eclipse.ui.dialogs.FilteredTree$NotifyingTreeViewer.refresh(FilteredTree.java:931) at org.eclipse.jface.viewers.StructuredViewer.refresh(StructuredViewer.java:1412) at org.eclipse.ui.dialogs.FilteredTree$NotifyingTreeViewer.refresh(FilteredTree.java:921) at org.eclipse.ui.dialogs.FilteredTree$2.runInUIThread(FilteredTree.java:394) at org.eclipse.ui.progress.UIJob$1.run(UIJob.java:94) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:133) - locked <0xb2a39b10> (a org.eclipse.swt.widgets.RunnableLock) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3378) at org.eclipse.swt.widgets.Display.idleProc(Display.java:2282) at org.eclipse.swt.internal.gtk.OS._gtk_dialog_run(Native Method) at org.eclipse.swt.internal.gtk.OS.gtk_dialog_run(OS.java:4442) at org.eclipse.swt.widgets.MessageBox.open(MessageBox.java:166) at org.eclipse.swt.browser.PromptService2.Alert(PromptService2.java:209) at org.eclipse.swt.browser.PromptService2$2.method3(PromptService2.java:45) at org.eclipse.swt.internal.mozilla.XPCOMObject.callback3(XPCOMObject.java:259) at org.eclipse.swt.internal.gtk.OS._g_main_context_iteration(Native Method) at org.eclipse.swt.internal.gtk.OS.g_main_context_iteration(OS.java:1541) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3031) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2382) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2346) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2198) at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:493) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:288) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:488) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:193) 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:382) 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:549) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504) at org.eclipse.equinox.launcher.Main.run(Main.java:1236) at org.eclipse.equinox.launcher.Main.main(Main.java:1212) "VM Thread" prio=10 tid=0x0812c800 nid=0x1a8c runnable "GC task thread#0 (ParallelGC)" prio=10 tid=0x08071c00 nid=0x1a8a runnable "GC task thread#1 (ParallelGC)" prio=10 tid=0x08072c00 nid=0x1a8b runnable "VM Periodic Task Thread" prio=10 tid=0x0815e400 nid=0x1a9d waiting on condition JNI global references: 7145 Heap PSYoungGen total 41664K, used 31593K [0xb1280000, 0xb49d0000, 0xb49d0000) eden space 36800K, 85% used [0xb1280000,0xb31435f8,0xb3670000) from space 4864K, 1% used [0xb3670000,0xb36871e0,0xb3b30000) to space 4992K, 0% used [0xb44f0000,0xb44f0000,0xb49d0000) PSOldGen total 28288K, used 12016K [0x957d0000, 0x97370000, 0xb1280000) object space 28288K, 42% used [0x957d0000,0x9638c020,0x97370000) PSPermGen total 34048K, used 34040K [0x917d0000, 0x93910000, 0x957d0000) object space 34048K, 99% used [0x917d0000,0x9390e160,0x93910000)
Steffen: I don't plan on prioritizing any Sandbox experimental stuff for 3.0.2. Let me know if there's a reason to do this sooner.
I agree. The only thing that concerns me with this bug is that this is actually causing a deadlock of the UI when highlighters are used. I looked into fixing this but this may require restructuring of some of the code and may not be trivial.
I have temporarily disabled highlighters in head to work around the dead lock.
I am investigating the problem that the highlight display is not done. And, this bug was found. I saw the stack trace. But, where became a deadlock is not understood. I think that it is a cause to use thread unsafe's ArrayList class in HighlighterList class. How if the operation to highlighters (ArrayList) is moved in the synchronized block ?
> How if the operation to highlighters (ArrayList) is moved in the synchronized block ? How if the operation to highlighters (HighlighterList) in SandboxUiPlugin is moved in the synchronized block ?
I believe the problem is that the static initialization of ColorMap is triggered by the lightweight decorator which runs on a non-UI thread while at the same time the UI thread tries to use the ColorMap by instantiating HighlighterList which references ColorMap in its static initialization. The UI thread is now holding the SWT lock while waiting for the lightweight decorator thread to finish initialization of ColorMap and that thread is waiting for the SWT lock. I am not sure if this problem affects other platforms than Linux. ?Worker-4? prio=10 tid=0x085aa800 nid=0x1ab2 in Object.wait() [0x8d3c1000..0x8d3c1eb0] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x95aff8b0> (a org.eclipse.swt.internal.Lock) at java.lang.Object.wait(Object.java:485) at org.eclipse.swt.internal.Lock.lock(Lock.java:34) - locked <0x95aff8b0> (a org.eclipse.swt.internal.Lock) at org.eclipse.swt.internal.gtk.OS.gdk_colormap_get_system(OS.java:2386) at org.eclipse.swt.graphics.Color.init(Color.java:245) at org.eclipse.swt.graphics.Color.<init>(Color.java:77) at org.eclipse.mylyn.internal.context.ui.ColorMap.<clinit>(ColorMap.java:22) at org.eclipse.mylyn.internal.sandbox.ui.highlighters.HighlighterList.<clinit>(HighlighterList.java:23) at org.eclipse.mylyn.internal.sandbox.ui.SandboxUiPlugin.initializeHighlighters(SandboxUiPlugin.java:149) at org.eclipse.mylyn.internal.sandbox.ui.SandboxUiPlugin.getHighlighter(SandboxUiPlugin.java:173) at org.eclipse.mylyn.internal.sandbox.ui.SandboxUiPlugin.getHighlighterForContextId(SandboxUiPlugin.java:186) at org.eclipse.mylyn.internal.sandbox.ui.highlighters.TaskHighlighter.decorate(TaskHighlighter.java:42) at org.eclipse.ui.internal.decorators.LightweightDecoratorDefinition.decorate(LightweightDecoratorDefinition.java:269) ?main? prio=10 tid=0x0806b000 nid=0x1a89 in Object.wait() [0xb7d8f000..0xb7d92208] java.lang.Thread.State: RUNNABLE at org.eclipse.mylyn.internal.sandbox.ui.SandboxUiPlugin.initializeHighlighters(SandboxUiPlugin.java:149) at org.eclipse.mylyn.internal.sandbox.ui.SandboxUiPlugin.getHighlighter(SandboxUiPlugin.java:173) at org.eclipse.mylyn.internal.sandbox.ui.SandboxUiPlugin.getHighlighterForContextId(SandboxUiPlugin.java:186) at org.eclipse.mylyn.internal.sandbox.ui.highlighters.TaskHighlighter.getHighlightColor(TaskHighlighter.java:55) at org.eclipse.mylyn.tasks.ui.TaskElementLabelProvider.getBackground(TaskElementLabelProvider.java:237) at org.eclipse.jface.viewers.DecoratingLabelProvider.getBackground(DecoratingLabelProvider.java:268) [...] - locked <0xb2a39b10> (a org.eclipse.swt.widgets.RunnableLock)
Created attachment 121489 [details] proposed fix The patch triggers initialization of ColorMap during startup and synchronizes the initizialization of the HighligherList instance in SandboxUiPlugin. That should work around the deadlock and fix the ConcurrentModificationException.
Created attachment 121490 [details] mylyn/context/zip
Marking resolved.
Apparently the fix did not work. Updated stack trace: "Worker-5" prio=1 tid=0x0917b808 nid=0x6f65 in Object.wait() [0x87179000..0x87179fc0] at java.lang.Object.wait(Native Method) - waiting on <0x9233a438> (a org.eclipse.swt.internal.Lock) at java.lang.Object.wait(Object.java:474) at org.eclipse.swt.internal.Lock.lock(Lock.java:34) - locked <0x9233a438> (a org.eclipse.swt.internal.Lock) at org.eclipse.swt.internal.gtk.OS.gdk_colormap_get_system(OS.java:2395) at org.eclipse.swt.graphics.Color.init(Color.java:245) at org.eclipse.swt.graphics.Color.<init>(Color.java:77) at org.eclipse.mylyn.internal.sandbox.ui.highlighters.Highlighter.initializeFromString(Highlighter.java:256) at org.eclipse.mylyn.internal.sandbox.ui.highlighters.Highlighter.<init>(Highlighter.java:73) at org.eclipse.mylyn.internal.sandbox.ui.highlighters.HighlighterList.internalizeFromString(HighlighterList.java:125) at org.eclipse.mylyn.internal.sandbox.ui.highlighters.HighlighterList.<init>(HighlighterList.java:45) at org.eclipse.mylyn.internal.sandbox.ui.SandboxUiPlugin.initializeHighlighters(SandboxUiPlugin.java:156) at org.eclipse.mylyn.internal.sandbox.ui.SandboxUiPlugin.getHighlighterList(SandboxUiPlugin.java:165) - locked <0x937a4f30> (a org.eclipse.mylyn.internal.sandbox.ui.SandboxUiPlugin) at org.eclipse.mylyn.internal.sandbox.ui.SandboxUiPlugin.getHighlighter(SandboxUiPlugin.java:178) at org.eclipse.mylyn.internal.sandbox.ui.SandboxUiPlugin.getHighlighterForContextId(SandboxUiPlugin.java:189) at org.eclipse.mylyn.internal.sandbox.ui.highlighters.TaskHighlighter.decorate(TaskHighlighter.java:45) at org.eclipse.ui.internal.decorators.LightweightDecoratorDefinition.decorate(LightweightDecoratorDefinition.java:269) at org.eclipse.ui.internal.decorators.LightweightDecoratorManager$LightweightRunnable.run(LightweightDecoratorManager.java:72) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37) at org.eclipse.ui.internal.decorators.LightweightDecoratorManager.decorate(LightweightDecoratorManager.java:356) at org.eclipse.ui.internal.decorators.LightweightDecoratorManager.getDecorations(LightweightDecoratorManager.java:338) at org.eclipse.ui.internal.decorators.DecorationScheduler$1.ensureResultCached(DecorationScheduler.java:374) at org.eclipse.ui.internal.decorators.DecorationScheduler$1.run(DecorationScheduler.java:334) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55) "main" prio=1 tid=0x0805d5f0 nid=0x6f07 waiting for monitor entry [0xbfd45000..0xbfd47ec8] at org.eclipse.mylyn.internal.sandbox.ui.SandboxUiPlugin.getHighlighterList(SandboxUiPlugin.java:164) - waiting to lock <0x937a4f30> (a org.eclipse.mylyn.internal.sandbox.ui.SandboxUiPlugin) at org.eclipse.mylyn.internal.sandbox.ui.SandboxUiPlugin.getHighlighter(SandboxUiPlugin.java:178) at org.eclipse.mylyn.internal.sandbox.ui.SandboxUiPlugin.getHighlighterForContextId(SandboxUiPlugin.java:189) at org.eclipse.mylyn.internal.sandbox.ui.highlighters.TaskHighlighter.getHighlightColor(TaskHighlighter.java:58) at org.eclipse.mylyn.tasks.ui.TaskElementLabelProvider.getBackground(TaskElementLabelProvider.java:251) at org.eclipse.jface.viewers.DecoratingLabelProvider.getBackground(DecoratingLabelProvider.java:268) at org.eclipse.mylyn.internal.tasks.ui.views.TaskTableLabelProvider.getBackground(TaskTableLabelProvider.java:86) at org.eclipse.jface.viewers.TableColumnViewerLabelProvider.update(TableColumnViewerLabelProvider.java:82) at org.eclipse.jface.viewers.ViewerColumn.refresh(ViewerColumn.java:145) at org.eclipse.jface.viewers.AbstractTreeViewer.doUpdateItem(AbstractTreeViewer.java:932) at org.eclipse.jface.viewers.AbstractTreeViewer$UpdateItemSafeRunnable.run(AbstractTreeViewer.java:102) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37) at org.eclipse.core.runtime.Platform.run(Platform.java:880) at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:48) at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:175) at org.eclipse.jface.viewers.AbstractTreeViewer.doUpdateItem(AbstractTreeViewer.java:1012) at org.eclipse.jface.viewers.StructuredViewer$UpdateItemSafeRunnable.run(StructuredViewer.java:466) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37) at org.eclipse.core.runtime.Platform.run(Platform.java:880) at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:48) at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:175) at org.eclipse.jface.viewers.StructuredViewer.updateItem(StructuredViewer.java:2041) at org.eclipse.jface.viewers.AbstractTreeViewer.createTreeItem(AbstractTreeViewer.java:827) at org.eclipse.jface.viewers.AbstractTreeViewer$1.run(AbstractTreeViewer.java:802) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) at org.eclipse.jface.viewers.AbstractTreeViewer.createChildren(AbstractTreeViewer.java:776) at org.eclipse.jface.viewers.TreeViewer.createChildren(TreeViewer.java:634) at org.eclipse.jface.viewers.AbstractTreeViewer.internalExpand(AbstractTreeViewer.java:1578) at org.eclipse.jface.viewers.AbstractTreeViewer.setSelectionToWidget(AbstractTreeViewer.java:2456) at org.eclipse.jface.viewers.StructuredViewer.setSelectionToWidget(StructuredViewer.java:1680) at org.eclipse.jface.viewers.AbstractTreeViewer.setSelectionToWidget(AbstractTreeViewer.java:2864) at org.eclipse.jface.viewers.StructuredViewer.setSelection(StructuredViewer.java:1636) at org.eclipse.jface.viewers.TreeViewer.setSelection(TreeViewer.java:1104) at org.eclipse.mylyn.internal.tasks.ui.views.TaskListView.selectedAndFocusTask(TaskListView.java:1669) at org.eclipse.mylyn.internal.tasks.ui.views.TaskListView.jumpToEditorTask(TaskListView.java:1817) at org.eclipse.mylyn.internal.tasks.ui.views.TaskListView.access$9(TaskListView.java:1811) at org.eclipse.mylyn.internal.tasks.ui.views.TaskListView$7.jumpToEditor(TaskListView.java:1143) at org.eclipse.mylyn.internal.tasks.ui.views.TaskListView$7.partActivated(TaskListView.java:1150) at org.eclipse.ui.internal.PartListenerList$1.run(PartListenerList.java:72) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37) at org.eclipse.core.runtime.Platform.run(Platform.java:880) at org.eclipse.ui.internal.PartListenerList.fireEvent(PartListenerList.java:57) at org.eclipse.ui.internal.PartListenerList.firePartActivated(PartListenerList.java:70) at org.eclipse.ui.internal.PartService.firePartActivated(PartService.java:186) at org.eclipse.ui.internal.PartService.access$0(PartService.java:176) at org.eclipse.ui.internal.PartService$PartActivated.fire(PartService.java:99) at org.eclipse.ui.internal.PartService.processPartJobs(PartService.java:160) at org.eclipse.ui.internal.PartService$PartListener.handleEvent(PartService.java:87) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1158) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1182) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1163) at org.eclipse.swt.widgets.Shell.setActiveControl(Shell.java:1245) at org.eclipse.swt.widgets.Control.sendFocusEvent(Control.java:3296) at org.eclipse.swt.widgets.Control.gtk_event_after(Control.java:2684) at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:1538) at org.eclipse.swt.widgets.Control.windowProc(Control.java:4506) at org.eclipse.swt.widgets.Display.windowProc(Display.java:4099) at org.eclipse.swt.internal.gtk.OS._gtk_main_do_event(Native Method) at org.eclipse.swt.internal.gtk.OS.gtk_main_do_event(OS.java:5792) at org.eclipse.swt.widgets.Display.eventProc(Display.java:1177) at org.eclipse.swt.internal.gtk.OS._g_main_context_iteration(Native Method) at org.eclipse.swt.internal.gtk.OS.g_main_context_iteration(OS.java:1550) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3031) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2382) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2346) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2198) at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:493) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:288) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:488) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:193) 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:386) 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:585) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:549) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504) at org.eclipse.equinox.launcher.Main.run(Main.java:1236) at org.eclipse.equinox.launcher.Main.main(Main.java:1212)
Created attachment 121491 [details] second attempt
The problem in comment 11 was essentially the same as previously except that colors were initialized in Highlighter and not in ColorMap. Now highlighters are initialized during plug-in startup.