Community
Participate
Working Groups
Build Identifier: Version: 3.7.1 Build id: M20110909-1335 Nice deadlock I've been hitting after pressing enter on the Scala Editor. Looks like the SmartIndenter is triggering it, but I currently believe the actual cause of the deadlock is to be found in the Eclipse JDT internals. Why? Because the only two calls coming from our Scala IDE sourcecode and these calls don't seem to be the direct cause of the deadlock. Let me elaborate a bit more: * `scala.tools.eclipse.javaelements.ScalaSourceFile.reconcile(ScalaSourceFile.scala:68)` is simply redirecting to `org.eclipse.jdt.internal.core.CompilationUnit.reconcile(CompilationUnit.java:1244)` (and, if I understand this correctly, the latter is the default implementation that JDT would be calling) `scala.tools.eclipse.contribution.weaving.jdt.cfprovider.ClassFileProviderAspect.ajc$around$scala_tools_eclipse_contribution_weaving_jdt_cfprovider_ClassFileProviderAspect$14$3eea5531(ClassFileProviderAspect.aj:393)` is an aspect that intercepts `org.eclipse.jdt.internal.corext.util.OpenTypeHistory.isContainerDirty(OpenTypeHistory.java:366)`. The two implementation are practically the same, the only difference is that in "our" pointcut we perform an additional check to make sure that the Resource attached to a CompilationUnit isn't null. (for reference, here is a link to the pointcut in the Scala IDE implementation: https://github.com/scala-ide/scala-ide/blob/master/org.scala-ide.sdt.aspects/src/scala/tools/eclipse/contribution/weaving/jdt/cfprovider/ClassFileProviderAspect.aj#L138). Below is the interesting part of the thread dump: Found one Java-level deadlock: ============================= "org.eclipse.jdt.internal.ui.text.JavaReconciler": waiting to lock monitor 1011f9270 (object 76df1a7c0, a org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader), which is held by "Worker-53" "Worker-53": waiting to lock monitor 100bee270 (object 76df6d920, a org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader), which is held by "org.eclipse.jdt.internal.ui.text.JavaReconciler" Java stack information for the threads listed above: =================================================== "org.eclipse.jdt.internal.ui.text.JavaReconciler": at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass_LockClassLoader(ClasspathManager.java:477) - waiting to lock <76df1a7c0> (a org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader) at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:458) at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216) at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400) at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476) at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429) at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417) at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) at org.eclipse.osgi.internal.loader.BundleLoader.loadClass(BundleLoader.java:345) at org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:229) at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadClass(AbstractBundle.java:1207) at org.eclipse.equinox.weaving.hooks.WeavingLoaderDelegateHook.postFindClass(WeavingLoaderDelegateHook.java:102) at org.eclipse.osgi.internal.loader.BundleLoader.searchHooks(BundleLoader.java:528) at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:493) at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429) at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417) at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) at org.eclipse.jdt.internal.core.hierarchy.ChangeCollector.getAllTypesFromElement(ChangeCollector.java:334) at org.eclipse.jdt.internal.core.hierarchy.ChangeCollector.addChange(ChangeCollector.java:174) at org.eclipse.jdt.internal.core.hierarchy.ChangeCollector.addAffectedChildren(ChangeCollector.java:62) at org.eclipse.jdt.internal.core.hierarchy.ChangeCollector.addChange(ChangeCollector.java:221) at org.eclipse.jdt.internal.core.hierarchy.ChangeCollector.addAffectedChildren(ChangeCollector.java:57) at org.eclipse.jdt.internal.core.hierarchy.ChangeCollector.addChange(ChangeCollector.java:91) at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.isAffectedByOpenable(TypeHierarchy.java:1000) at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.isAffected(TypeHierarchy.java:824) - locked <775f8a5d8> (a org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy) at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.elementChanged(TypeHierarchy.java:328) at org.eclipse.jdt.internal.core.DeltaProcessor$4.run(DeltaProcessor.java:1670) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.jdt.internal.core.DeltaProcessor.notifyListeners(DeltaProcessor.java:1660) at org.eclipse.jdt.internal.core.DeltaProcessor.fireReconcileDelta(DeltaProcessor.java:1512) at org.eclipse.jdt.internal.core.DeltaProcessor.fire(DeltaProcessor.java:1471) at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:769) at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:788) at org.eclipse.jdt.internal.core.CompilationUnit.reconcile(CompilationUnit.java:1244) at scala.tools.eclipse.javaelements.ScalaSourceFile.reconcile(ScalaSourceFile.scala:68) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:126) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.access$0(JavaReconcilingStrategy.java:108) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy$1.run(JavaReconcilingStrategy.java:89) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:87) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:151) at org.eclipse.jdt.internal.ui.text.CompositeReconcilingStrategy.reconcile(CompositeReconcilingStrategy.java:86) at org.eclipse.jdt.internal.ui.text.JavaCompositeReconcilingStrategy.reconcile(JavaCompositeReconcilingStrategy.java:104) at org.eclipse.jface.text.reconciler.MonoReconciler.process(MonoReconciler.java:77) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:206) "Worker-53": at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass_LockClassLoader(ClasspathManager.java:477) - waiting to lock <76df6d920> (a org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader) at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:458) at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216) at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400) at org.eclipse.osgi.internal.loader.SingleSourcePackage.loadClass(SingleSourcePackage.java:35) at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:473) at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429) at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417) at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) at scala.tools.eclipse.contribution.weaving.jdt.cfprovider.ClassFileProviderAspect.ajc$around$scala_tools_eclipse_contribution_weaving_jdt_cfprovider_ClassFileProviderAspect$14$3eea5531(ClassFileProviderAspect.aj:393) at org.eclipse.jdt.internal.corext.util.OpenTypeHistory.isContainerDirty(OpenTypeHistory.java:366) at org.eclipse.jdt.internal.corext.util.OpenTypeHistory.internalCheckConsistency(OpenTypeHistory.java:307) - locked <771f526a8> (a org.eclipse.jdt.internal.corext.util.OpenTypeHistory) at org.eclipse.jdt.internal.corext.util.OpenTypeHistory.access$0(OpenTypeHistory.java:296) at org.eclipse.jdt.internal.corext.util.OpenTypeHistory$UpdateJob.run(OpenTypeHistory.java:157) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) And here is the whole thread dump: 17:50 mirco@Mircos-iMac /Users/mirco/Projects/ide/scala-ide/org.scala-ide.build % jstack 3881 2012-04-24 17:50:50 Full thread dump Java HotSpot(TM) 64-Bit Server VM (20.6-b01-415 mixed mode): "Attach Listener" daemon prio=9 tid=1167e9000 nid=0x12cb01000 waiting on condition [00000000] java.lang.Thread.State: RUNNABLE "Worker-59" prio=5 tid=131cd5800 nid=0x12b16f000 in Object.wait() [12b16e000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <76561ad78> (a org.eclipse.ui.internal.Semaphore) at org.eclipse.ui.internal.Semaphore.acquire(Semaphore.java:43) - locked <76561ad78> (a org.eclipse.ui.internal.Semaphore) at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:168) at org.eclipse.swt.widgets.Display.syncExec(Display.java:4613) at org.eclipse.egit.ui.Activator.isActive(Activator.java:220) at org.eclipse.egit.ui.Activator$RepositoryChangeScanner.run(Activator.java:429) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) "Worker-58" prio=5 tid=131c4e000 nid=0x13abcb000 in Object.wait() [13abca000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <76da978b8> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:188) - locked <76da978b8> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:220) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:50) "Worker-57" prio=5 tid=115081000 nid=0x13a9c5000 in Object.wait() [13a9c4000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <76da978b8> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:188) - locked <76da978b8> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:220) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:50) "Worker-56" prio=5 tid=131f4e800 nid=0x13a8c2000 in Object.wait() [13a8c1000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <76da978b8> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:188) - locked <76da978b8> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:220) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:50) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=1 tid=11b48d000 nid=0x12b5b1000 in Object.wait() [12b5b0000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <77cce1400> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:179) - locked <77cce1400> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=1 tid=131cfb000 nid=0x1317a5000 waiting for monitor entry [1317a2000] java.lang.Thread.State: BLOCKED (on object monitor) at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass_LockClassLoader(ClasspathManager.java:477) - waiting to lock <76df1a7c0> (a org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader) at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:458) at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216) at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400) at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476) at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429) at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417) at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) at org.eclipse.osgi.internal.loader.BundleLoader.loadClass(BundleLoader.java:345) at org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:229) at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadClass(AbstractBundle.java:1207) at org.eclipse.equinox.weaving.hooks.WeavingLoaderDelegateHook.postFindClass(WeavingLoaderDelegateHook.java:102) at org.eclipse.osgi.internal.loader.BundleLoader.searchHooks(BundleLoader.java:528) at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:493) at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429) at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417) at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) at org.eclipse.jdt.internal.core.hierarchy.ChangeCollector.getAllTypesFromElement(ChangeCollector.java:334) at org.eclipse.jdt.internal.core.hierarchy.ChangeCollector.addChange(ChangeCollector.java:174) at org.eclipse.jdt.internal.core.hierarchy.ChangeCollector.addAffectedChildren(ChangeCollector.java:62) at org.eclipse.jdt.internal.core.hierarchy.ChangeCollector.addChange(ChangeCollector.java:221) at org.eclipse.jdt.internal.core.hierarchy.ChangeCollector.addAffectedChildren(ChangeCollector.java:57) at org.eclipse.jdt.internal.core.hierarchy.ChangeCollector.addChange(ChangeCollector.java:91) at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.isAffectedByOpenable(TypeHierarchy.java:1000) at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.isAffected(TypeHierarchy.java:824) - locked <775f8a5d8> (a org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy) at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.elementChanged(TypeHierarchy.java:328) at org.eclipse.jdt.internal.core.DeltaProcessor$4.run(DeltaProcessor.java:1670) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.jdt.internal.core.DeltaProcessor.notifyListeners(DeltaProcessor.java:1660) at org.eclipse.jdt.internal.core.DeltaProcessor.fireReconcileDelta(DeltaProcessor.java:1512) at org.eclipse.jdt.internal.core.DeltaProcessor.fire(DeltaProcessor.java:1471) at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:769) at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:788) at org.eclipse.jdt.internal.core.CompilationUnit.reconcile(CompilationUnit.java:1244) at scala.tools.eclipse.javaelements.ScalaSourceFile.reconcile(ScalaSourceFile.scala:68) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:126) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.access$0(JavaReconcilingStrategy.java:108) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy$1.run(JavaReconcilingStrategy.java:89) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:87) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:151) at org.eclipse.jdt.internal.ui.text.CompositeReconcilingStrategy.reconcile(CompositeReconcilingStrategy.java:86) at org.eclipse.jdt.internal.ui.text.JavaCompositeReconcilingStrategy.reconcile(JavaCompositeReconcilingStrategy.java:104) at org.eclipse.jface.text.reconciler.MonoReconciler.process(MonoReconciler.java:77) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:206) "Worker-55" prio=5 tid=1167ec800 nid=0x12eb01000 in Object.wait() [12eb00000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <76da978b8> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:188) - locked <76da978b8> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:220) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:50) "Worker-54" prio=5 tid=11672d800 nid=0x12cd78000 in Object.wait() [12cd77000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <76da978b8> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:188) - locked <76da978b8> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:220) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:50) "Worker-53" prio=5 tid=116400000 nid=0x12b401000 waiting for monitor entry [12b3ff000] java.lang.Thread.State: BLOCKED (on object monitor) at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass_LockClassLoader(ClasspathManager.java:477) - waiting to lock <76df6d920> (a org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader) at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:458) at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216) at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400) at org.eclipse.osgi.internal.loader.SingleSourcePackage.loadClass(SingleSourcePackage.java:35) at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:473) at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429) at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417) at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) at scala.tools.eclipse.contribution.weaving.jdt.cfprovider.ClassFileProviderAspect.ajc$around$scala_tools_eclipse_contribution_weaving_jdt_cfprovider_ClassFileProviderAspect$14$3eea5531(ClassFileProviderAspect.aj:393) at org.eclipse.jdt.internal.corext.util.OpenTypeHistory.isContainerDirty(OpenTypeHistory.java:366) at org.eclipse.jdt.internal.corext.util.OpenTypeHistory.internalCheckConsistency(OpenTypeHistory.java:307) - locked <771f526a8> (a org.eclipse.jdt.internal.corext.util.OpenTypeHistory) at org.eclipse.jdt.internal.corext.util.OpenTypeHistory.access$0(OpenTypeHistory.java:296) at org.eclipse.jdt.internal.corext.util.OpenTypeHistory$UpdateJob.run(OpenTypeHistory.java:157) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=1 tid=131bc0800 nid=0x12e701000 in Object.wait() [12e700000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <77c888c98> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:179) - locked <77c888c98> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) "Worker-50" prio=5 tid=11b1f6000 nid=0x133f8b000 in Object.wait() [133f8a000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <76da978b8> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:188) - locked <76da978b8> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:220) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:50) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=1 tid=131bbe800 nid=0x12ec04000 in Object.wait() [12ec03000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <77becb948> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:179) - locked <77becb948> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) "Scala Presentation Compiler [org.scala-ide.sdt.core.tests]" prio=6 tid=11b352800 nid=0x12ed07000 in Object.wait() [12ed06000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <7789ff730> (a scala.tools.nsc.util.WorkScheduler) at java.lang.Object.wait(Object.java:485) at scala.tools.nsc.util.WorkScheduler.waitForMoreWork(WorkScheduler.scala:16) - locked <7789ff730> (a scala.tools.nsc.util.WorkScheduler) at scala.tools.nsc.interactive.PresentationCompilerThread$$anonfun$run$1.apply$mcZ$sp(PresentationCompilerThread.scala:21) at scala.tools.nsc.io.NullLogger$.logreplay(Replayer.scala:38) at scala.tools.nsc.interactive.PresentationCompilerThread.run(PresentationCompilerThread.scala:21) "Timer-0" daemon prio=1 tid=11600b800 nid=0x133e88000 in Object.wait() [133e87000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <7778d6ca0> (a java.util.TaskQueue) at java.util.TimerThread.mainLoop(Timer.java:509) - locked <7778d6ca0> (a java.util.TaskQueue) at java.util.TimerThread.run(Timer.java:462) "1249266880@qtp-1404089919-1 - Acceptor0 SelectChannelConnector@127.0.0.1:52707" prio=5 tid=1235ee000 nid=0x13378a000 runnable [133789000] java.lang.Thread.State: RUNNABLE at sun.nio.ch.KQueueArrayWrapper.kevent0(Native Method) at sun.nio.ch.KQueueArrayWrapper.poll(KQueueArrayWrapper.java:136) at sun.nio.ch.KQueueSelectorImpl.doSelect(KQueueSelectorImpl.java:69) at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69) - locked <7778d6cd0> (a sun.nio.ch.Util$2) - locked <7778d6ce8> (a java.util.Collections$UnmodifiableSet) - locked <7778ac410> (a sun.nio.ch.KQueueSelectorImpl) at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80) at org.mortbay.io.nio.SelectorManager$SelectSet.doSelect(SelectorManager.java:484) at org.mortbay.io.nio.SelectorManager.doSelect(SelectorManager.java:191) at org.mortbay.jetty.nio.SelectChannelConnector.accept(SelectChannelConnector.java:124) at org.mortbay.jetty.AbstractConnector$Acceptor.run(AbstractConnector.java:707) at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) "642908177@qtp-1404089919-0" prio=5 tid=123547000 nid=0x133687000 in Object.wait() [133686000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <7778e2928> (a org.mortbay.thread.QueuedThreadPool$PoolThread) at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:626) - locked <7778e2928> (a org.mortbay.thread.QueuedThreadPool$PoolThread) "Worker-44" prio=5 tid=11639f000 nid=0x12e814000 in Object.wait() [12e813000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <76da978b8> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:188) - locked <76da978b8> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:220) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:50) "ForkJoinPool-1-worker-8" daemon prio=6 tid=11569c000 nid=0x12b06c000 waiting on condition [12b06b000] java.lang.Thread.State: WAITING (parking) at sun.misc.Unsafe.park(Native Method) - parking to wait for <7768dc3e8> (a scala.concurrent.forkjoin.ForkJoinPool$WaitQueueNode) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:156) at scala.concurrent.forkjoin.ForkJoinPool$WaitQueueNode.awaitSyncRelease(ForkJoinPool.java:1340) at scala.concurrent.forkjoin.ForkJoinPool.sync(ForkJoinPool.java:1417) at scala.concurrent.forkjoin.ForkJoinWorkerThread.mainLoop(ForkJoinWorkerThread.java:342) at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:325) "ForkJoinPool-1-worker-7" daemon prio=6 tid=1163a8000 nid=0x12e40a000 waiting on condition [12e409000] java.lang.Thread.State: WAITING (parking) at sun.misc.Unsafe.park(Native Method) - parking to wait for <7768dc348> (a scala.concurrent.forkjoin.ForkJoinPool$WaitQueueNode) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:156) at scala.concurrent.forkjoin.ForkJoinPool$WaitQueueNode.awaitSyncRelease(ForkJoinPool.java:1340) at scala.concurrent.forkjoin.ForkJoinPool.sync(ForkJoinPool.java:1417) at scala.concurrent.forkjoin.ForkJoinWorkerThread.mainLoop(ForkJoinWorkerThread.java:342) at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:325) "ForkJoinPool-1-worker-6" daemon prio=6 tid=1163a7800 nid=0x12e307000 waiting on condition [12e306000] java.lang.Thread.State: WAITING (parking) at sun.misc.Unsafe.park(Native Method) - parking to wait for <7768dc368> (a scala.concurrent.forkjoin.ForkJoinPool$WaitQueueNode) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:156) at scala.concurrent.forkjoin.ForkJoinPool$WaitQueueNode.awaitSpareRelease(ForkJoinPool.java:1349) at scala.concurrent.forkjoin.ForkJoinPool.suspendIfSpare(ForkJoinPool.java:1634) at scala.concurrent.forkjoin.ForkJoinPool.sync(ForkJoinPool.java:1408) at scala.concurrent.forkjoin.ForkJoinWorkerThread.mainLoop(ForkJoinWorkerThread.java:342) at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:325) "ForkJoinPool-1-worker-5" daemon prio=6 tid=1163a6800 nid=0x12e204000 waiting on condition [12e203000] java.lang.Thread.State: WAITING (parking) at sun.misc.Unsafe.park(Native Method) - parking to wait for <7768dc328> (a scala.concurrent.forkjoin.ForkJoinPool$WaitQueueNode) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:156) at scala.concurrent.forkjoin.ForkJoinPool$WaitQueueNode.awaitSyncRelease(ForkJoinPool.java:1340) at scala.concurrent.forkjoin.ForkJoinPool.sync(ForkJoinPool.java:1417) at scala.concurrent.forkjoin.ForkJoinWorkerThread.mainLoop(ForkJoinWorkerThread.java:342) at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:325) "ForkJoinPool-1-worker-4" daemon prio=6 tid=1163a6000 nid=0x12e101000 waiting on condition [12e100000] java.lang.Thread.State: WAITING (parking) at sun.misc.Unsafe.park(Native Method) - parking to wait for <7768dc3c8> (a scala.concurrent.forkjoin.ForkJoinPool$WaitQueueNode) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:156) at scala.concurrent.forkjoin.ForkJoinPool$WaitQueueNode.awaitSyncRelease(ForkJoinPool.java:1340) at scala.concurrent.forkjoin.ForkJoinPool.sync(ForkJoinPool.java:1417) at scala.concurrent.forkjoin.ForkJoinWorkerThread.mainLoop(ForkJoinWorkerThread.java:342) at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:325) "ForkJoinPool-1-worker-3" daemon prio=6 tid=1163a5000 nid=0x12cf96000 waiting on condition [12cf95000] java.lang.Thread.State: WAITING (parking) at sun.misc.Unsafe.park(Native Method) - parking to wait for <7768dc3a8> (a scala.concurrent.forkjoin.ForkJoinPool$WaitQueueNode) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:156) at scala.concurrent.forkjoin.ForkJoinPool$WaitQueueNode.awaitSyncRelease(ForkJoinPool.java:1340) at scala.concurrent.forkjoin.ForkJoinPool.sync(ForkJoinPool.java:1417) at scala.concurrent.forkjoin.ForkJoinWorkerThread.mainLoop(ForkJoinWorkerThread.java:342) at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:325) "ForkJoinPool-1-worker-2" daemon prio=6 tid=1163a4800 nid=0x12ce93000 waiting on condition [12ce92000] java.lang.Thread.State: WAITING (parking) at sun.misc.Unsafe.park(Native Method) - parking to wait for <7768dc408> (a scala.concurrent.forkjoin.ForkJoinPool$WaitQueueNode) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:156) at scala.concurrent.forkjoin.ForkJoinPool$WaitQueueNode.awaitSyncRelease(ForkJoinPool.java:1340) at scala.concurrent.forkjoin.ForkJoinPool.sync(ForkJoinPool.java:1417) at scala.concurrent.forkjoin.ForkJoinWorkerThread.mainLoop(ForkJoinWorkerThread.java:342) at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:325) "ForkJoinPool-1-worker-1" daemon prio=6 tid=1163a3800 nid=0x12cc75000 waiting on condition [12cc74000] java.lang.Thread.State: WAITING (parking) at sun.misc.Unsafe.park(Native Method) - parking to wait for <7768dc388> (a scala.concurrent.forkjoin.ForkJoinPool$WaitQueueNode) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:156) at scala.concurrent.forkjoin.ForkJoinPool$WaitQueueNode.awaitSyncRelease(ForkJoinPool.java:1340) at scala.concurrent.forkjoin.ForkJoinPool.sync(ForkJoinPool.java:1417) at scala.concurrent.forkjoin.ForkJoinWorkerThread.mainLoop(ForkJoinWorkerThread.java:342) at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:325) "ForkJoinPool-1-worker-0" daemon prio=6 tid=1164d3000 nid=0x12abbf000 waiting on condition [12abbe000] java.lang.Thread.State: WAITING (parking) at sun.misc.Unsafe.park(Native Method) - parking to wait for <7768dc308> (a scala.concurrent.forkjoin.ForkJoinPool$WaitQueueNode) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:156) at scala.concurrent.forkjoin.ForkJoinPool$WaitQueueNode.awaitSyncRelease(ForkJoinPool.java:1340) at scala.concurrent.forkjoin.ForkJoinPool.sync(ForkJoinPool.java:1417) at scala.concurrent.forkjoin.ForkJoinWorkerThread.mainLoop(ForkJoinWorkerThread.java:342) at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:325) "[ThreadPool Manager] - Idle Thread" daemon prio=5 tid=11b33a000 nid=0x12b6c7000 in Object.wait() [12b6c6000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <772c8c058> (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 <772c8c058> (a org.eclipse.equinox.internal.util.impl.tpt.threadpool.Executor) "Scala Presentation Compiler [org.scala-ide.sdt.core]" prio=6 tid=115325000 nid=0x12aabc000 in Object.wait() [12aabb000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <76f3fde58> (a scala.tools.nsc.util.WorkScheduler) at java.lang.Object.wait(Object.java:485) at scala.tools.nsc.util.WorkScheduler.waitForMoreWork(WorkScheduler.scala:16) - locked <76f3fde58> (a scala.tools.nsc.util.WorkScheduler) at scala.tools.nsc.interactive.PresentationCompilerThread$$anonfun$run$1.apply$mcZ$sp(PresentationCompilerThread.scala:21) at scala.tools.nsc.io.NullLogger$.logreplay(Replayer.scala:38) at scala.tools.nsc.interactive.PresentationCompilerThread.run(PresentationCompilerThread.scala:21) "Java indexing" daemon prio=4 tid=12345c800 nid=0x12a85e000 in Object.wait() [12a85d000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <76e44e0c8> (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:382) - locked <76e44e0c8> (a org.eclipse.jdt.internal.core.search.indexing.IndexManager) at java.lang.Thread.run(Thread.java:680) "Thread-2" daemon prio=1 tid=115041000 nid=0x125548000 waiting on condition [125547000] java.lang.Thread.State: WAITING (parking) at sun.misc.Unsafe.park(Native Method) - parking to wait for <76df2b6b8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:156) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987) at java.util.concurrent.ArrayBlockingQueue.take(ArrayBlockingQueue.java:315) at org.eclipse.equinox.weaving.internal.caching.CacheWriter$1.run(Unknown Source) at java.lang.Thread.run(Thread.java:680) "Provisioning Event Dispatcher" daemon prio=5 tid=11610e000 nid=0x127509000 in Object.wait() [127508000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <76d8c9f30> (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:400) - locked <76d8c9f30> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread) at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:336) "Worker-JM" prio=5 tid=11b220800 nid=0x127406000 in Object.wait() [127405000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <76d70e950> (a java.util.ArrayList) at org.eclipse.core.internal.jobs.InternalWorker.run(InternalWorker.java:58) - locked <76d70e950> (a java.util.ArrayList) "[Timer] - Main Queue Handler" daemon prio=5 tid=11b1de000 nid=0x127303000 in Object.wait() [127302000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <76d70e968> (a java.lang.Object) at org.eclipse.equinox.internal.util.impl.tpt.timer.TimerImpl.run(TimerImpl.java:141) - locked <76d70e968> (a java.lang.Object) at java.lang.Thread.run(Thread.java:680) "Framework Event Dispatcher" daemon prio=5 tid=11b225000 nid=0x1270fd000 in Object.wait() [1270fc000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <76d87d178> (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:400) - locked <76d87d178> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread) at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:336) "Start Level Event Dispatcher" daemon prio=5 tid=1230fe800 nid=0x1256f0000 in Object.wait() [1256ef000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <76d87d1f8> (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:400) - locked <76d87d1f8> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread) at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:336) "Bundle File Closer" daemon prio=5 tid=116189000 nid=0x124f8e000 in Object.wait() [124f8d000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <76d952fe8> (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:400) - locked <76d952fe8> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread) at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:336) "State Data Manager" daemon prio=5 tid=116186800 nid=0x124d14000 waiting on condition [124d13000] 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:680) "Framework Active Thread" prio=5 tid=11617d800 nid=0x124c11000 in Object.wait() [124c10000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <76d6609d0> (a org.eclipse.osgi.framework.internal.core.Framework) at org.eclipse.osgi.framework.internal.core.Framework.run(Framework.java:1817) - locked <76d6609d0> (a org.eclipse.osgi.framework.internal.core.Framework) at java.lang.Thread.run(Thread.java:680) "Poller SunPKCS11-Darwin" daemon prio=1 tid=11505b000 nid=0x124201000 waiting on condition [124200000] java.lang.Thread.State: TIMED_WAITING (sleeping) at java.lang.Thread.sleep(Native Method) at sun.security.pkcs11.SunPKCS11$TokenPoller.run(SunPKCS11.java:692) at java.lang.Thread.run(Thread.java:680) "Low Memory Detector" daemon prio=5 tid=123000000 nid=0x122c01000 runnable [00000000] java.lang.Thread.State: RUNNABLE "C2 CompilerThread1" daemon prio=9 tid=11b1be800 nid=0x12290a000 waiting on condition [00000000] java.lang.Thread.State: RUNNABLE "C2 CompilerThread0" daemon prio=9 tid=115010800 nid=0x122807000 waiting on condition [00000000] java.lang.Thread.State: RUNNABLE "Signal Dispatcher" daemon prio=9 tid=11500f800 nid=0x122704000 runnable [00000000] java.lang.Thread.State: RUNNABLE "Surrogate Locker Thread (Concurrent GC)" daemon prio=5 tid=116008800 nid=0x122601000 waiting on condition [00000000] java.lang.Thread.State: RUNNABLE "Finalizer" daemon prio=8 tid=11b1bd800 nid=0x12232c000 in Object.wait() [12232b000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <76d660880> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118) - locked <76d660880> (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) "Reference Handler" daemon prio=10 tid=11b1bd000 nid=0x122229000 in Object.wait() [122228000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <76d660018> (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 <76d660018> (a java.lang.ref.Reference$Lock) "main" prio=6 tid=117000800 nid=0x7fff70bcbcc0 waiting for monitor entry [7fff5fbf9000] java.lang.Thread.State: BLOCKED (on object monitor) at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass_LockClassLoader(ClasspathManager.java:477) - waiting to lock <76df6d920> (a org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader) at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:458) at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216) at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400) at org.eclipse.osgi.internal.loader.SingleSourcePackage.loadClass(SingleSourcePackage.java:35) at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:473) at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429) at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417) at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) at scala.tools.eclipse.ui.ScalaAutoIndentStrategy.isClosed(ScalaAutoIndentStrategy.scala:522) at scala.tools.eclipse.ui.ScalaAutoIndentStrategy.smartIndentAfterNewLine(ScalaAutoIndentStrategy.scala:304) at scala.tools.eclipse.ui.ScalaAutoIndentStrategy.customizeDocumentCommand(ScalaAutoIndentStrategy.scala:1220) at org.eclipse.jface.text.TextViewer.customizeDocumentCommand(TextViewer.java:3752) at org.eclipse.jface.text.TextViewer.handleVerifyEvent(TextViewer.java:3782) at org.eclipse.jface.text.source.projection.ProjectionViewer.handleVerifyEvent(ProjectionViewer.java:1277) at org.eclipse.jface.text.TextViewer$TextVerifyListener.verifyText(TextViewer.java:435) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:265) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4128) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1457) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1480) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1465) at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1270) at org.eclipse.swt.custom.StyledText.modifyContent(StyledText.java:7148) at org.eclipse.swt.custom.StyledText.sendKeyEvent(StyledText.java:7994) at org.eclipse.swt.custom.StyledText.doContent(StyledText.java:2456) at org.eclipse.swt.custom.StyledText.handleKey(StyledText.java:5911) at org.eclipse.swt.custom.StyledText.handleKeyDown(StyledText.java:5941) at org.eclipse.swt.custom.StyledText$7.handleEvent(StyledText.java:5635) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4128) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1457) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1480) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1465) at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1494) at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1490) at org.eclipse.swt.widgets.Canvas.sendKeyEvent(Canvas.java:463) at org.eclipse.swt.widgets.Control.doCommandBySelector(Control.java:1051) at org.eclipse.swt.widgets.Display.windowProc(Display.java:5563) at org.eclipse.swt.internal.cocoa.OS.objc_msgSend(Native Method) at org.eclipse.swt.internal.cocoa.NSResponder.interpretKeyEvents(NSResponder.java:68) at org.eclipse.swt.widgets.Composite.keyDown(Composite.java:587) at org.eclipse.swt.widgets.Display.windowProc(Display.java:5473) at org.eclipse.swt.internal.cocoa.OS.objc_msgSendSuper(Native Method) at org.eclipse.swt.widgets.Widget.callSuper(Widget.java:220) at org.eclipse.swt.widgets.Widget.windowSendEvent(Widget.java:2092) at org.eclipse.swt.widgets.Shell.windowSendEvent(Shell.java:2252) at org.eclipse.swt.widgets.Display.windowProc(Display.java:5535) at org.eclipse.swt.internal.cocoa.OS.objc_msgSendSuper(Native Method) at org.eclipse.swt.widgets.Display.applicationSendEvent(Display.java:4989) at org.eclipse.swt.widgets.Display.applicationProc(Display.java:5138) at org.eclipse.swt.internal.cocoa.OS.objc_msgSend(Native Method) at org.eclipse.swt.internal.cocoa.NSApplication.sendEvent(NSApplication.java:128) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3610) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2696) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2660) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2494) at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:674) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:667) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123) 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:344) 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:622) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577) at org.eclipse.equinox.launcher.Main.run(Main.java:1410) "VM Thread" prio=9 tid=11b1b8800 nid=0x122126000 runnable "Gang worker#0 (Parallel GC Threads)" prio=9 tid=11b000000 nid=0x115c01000 runnable "Gang worker#1 (Parallel GC Threads)" prio=9 tid=11b001000 nid=0x115d04000 runnable "Gang worker#2 (Parallel GC Threads)" prio=9 tid=11b001800 nid=0x115e07000 runnable "Gang worker#3 (Parallel GC Threads)" prio=9 tid=11b002000 nid=0x115f0a000 runnable "Gang worker#4 (Parallel GC Threads)" prio=9 tid=11b002800 nid=0x11a902000 runnable "Gang worker#5 (Parallel GC Threads)" prio=9 tid=11b003800 nid=0x11aa05000 runnable "Gang worker#6 (Parallel GC Threads)" prio=9 tid=11b004000 nid=0x11ab08000 runnable "Gang worker#7 (Parallel GC Threads)" prio=9 tid=11b004800 nid=0x11ac0b000 runnable "Concurrent Mark-Sweep GC Thread" prio=9 tid=11b0e2000 nid=0x121e2d000 runnable "Gang worker#0 (Parallel CMS Threads)" prio=9 tid=11b0e0800 nid=0x121427000 runnable "Gang worker#1 (Parallel CMS Threads)" prio=9 tid=11b0e1800 nid=0x12152a000 runnable "VM Periodic Task Thread" prio=10 tid=12300a000 nid=0x122d04000 waiting on condition "Exception Catcher Thread" prio=10 tid=117001800 nid=0x104301000 runnable JNI global references: 4134 Found one Java-level deadlock: ============================= "org.eclipse.jdt.internal.ui.text.JavaReconciler": waiting to lock monitor 1011f9270 (object 76df1a7c0, a org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader), which is held by "Worker-53" "Worker-53": waiting to lock monitor 100bee270 (object 76df6d920, a org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader), which is held by "org.eclipse.jdt.internal.ui.text.JavaReconciler" Java stack information for the threads listed above: =================================================== "org.eclipse.jdt.internal.ui.text.JavaReconciler": at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass_LockClassLoader(ClasspathManager.java:477) - waiting to lock <76df1a7c0> (a org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader) at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:458) at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216) at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400) at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476) at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429) at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417) at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) at org.eclipse.osgi.internal.loader.BundleLoader.loadClass(BundleLoader.java:345) at org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:229) at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadClass(AbstractBundle.java:1207) at org.eclipse.equinox.weaving.hooks.WeavingLoaderDelegateHook.postFindClass(WeavingLoaderDelegateHook.java:102) at org.eclipse.osgi.internal.loader.BundleLoader.searchHooks(BundleLoader.java:528) at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:493) at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429) at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417) at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) at org.eclipse.jdt.internal.core.hierarchy.ChangeCollector.getAllTypesFromElement(ChangeCollector.java:334) at org.eclipse.jdt.internal.core.hierarchy.ChangeCollector.addChange(ChangeCollector.java:174) at org.eclipse.jdt.internal.core.hierarchy.ChangeCollector.addAffectedChildren(ChangeCollector.java:62) at org.eclipse.jdt.internal.core.hierarchy.ChangeCollector.addChange(ChangeCollector.java:221) at org.eclipse.jdt.internal.core.hierarchy.ChangeCollector.addAffectedChildren(ChangeCollector.java:57) at org.eclipse.jdt.internal.core.hierarchy.ChangeCollector.addChange(ChangeCollector.java:91) at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.isAffectedByOpenable(TypeHierarchy.java:1000) at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.isAffected(TypeHierarchy.java:824) - locked <775f8a5d8> (a org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy) at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.elementChanged(TypeHierarchy.java:328) at org.eclipse.jdt.internal.core.DeltaProcessor$4.run(DeltaProcessor.java:1670) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.jdt.internal.core.DeltaProcessor.notifyListeners(DeltaProcessor.java:1660) at org.eclipse.jdt.internal.core.DeltaProcessor.fireReconcileDelta(DeltaProcessor.java:1512) at org.eclipse.jdt.internal.core.DeltaProcessor.fire(DeltaProcessor.java:1471) at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:769) at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:788) at org.eclipse.jdt.internal.core.CompilationUnit.reconcile(CompilationUnit.java:1244) at scala.tools.eclipse.javaelements.ScalaSourceFile.reconcile(ScalaSourceFile.scala:68) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:126) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.access$0(JavaReconcilingStrategy.java:108) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy$1.run(JavaReconcilingStrategy.java:89) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:87) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:151) at org.eclipse.jdt.internal.ui.text.CompositeReconcilingStrategy.reconcile(CompositeReconcilingStrategy.java:86) at org.eclipse.jdt.internal.ui.text.JavaCompositeReconcilingStrategy.reconcile(JavaCompositeReconcilingStrategy.java:104) at org.eclipse.jface.text.reconciler.MonoReconciler.process(MonoReconciler.java:77) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:206) "Worker-53": at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass_LockClassLoader(ClasspathManager.java:477) - waiting to lock <76df6d920> (a org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader) at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:458) at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216) at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400) at org.eclipse.osgi.internal.loader.SingleSourcePackage.loadClass(SingleSourcePackage.java:35) at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:473) at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429) at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417) at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) at scala.tools.eclipse.contribution.weaving.jdt.cfprovider.ClassFileProviderAspect.ajc$around$scala_tools_eclipse_contribution_weaving_jdt_cfprovider_ClassFileProviderAspect$14$3eea5531(ClassFileProviderAspect.aj:393) at org.eclipse.jdt.internal.corext.util.OpenTypeHistory.isContainerDirty(OpenTypeHistory.java:366) at org.eclipse.jdt.internal.corext.util.OpenTypeHistory.internalCheckConsistency(OpenTypeHistory.java:307) - locked <771f526a8> (a org.eclipse.jdt.internal.corext.util.OpenTypeHistory) at org.eclipse.jdt.internal.corext.util.OpenTypeHistory.access$0(OpenTypeHistory.java:296) at org.eclipse.jdt.internal.corext.util.OpenTypeHistory$UpdateJob.run(OpenTypeHistory.java:157) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) Found 1 deadlock. Please, let me know what you think. I also opened a ticket in our bug tracker: http://scala-ide-portfolio.assembla.com/spaces/scala-ide/support/tickets/1000996 Reproducible: Couldn't Reproduce
*** This bug has been marked as a duplicate of bug 212262 ***
Why do you consider this a duplicate of bug 212262? I quickly skimmed the linked bug but I fail to understand how the this ticket is a duplicate of the linked one. In bug 212262 the deadlock seems to be due to lock contention between multiple classloaders. While in our case I thought the deadlock was caused by a wrong locking strategy between the JavaReconcilier and the DefaultClassLoader.
(In reply to comment #2) > Why do you consider this a duplicate of bug 212262? I quickly skimmed the > linked bug but I fail to understand how the this ticket is a duplicate of the > linked one. > > In bug 212262 the deadlock seems to be due to lock contention between multiple > classloaders. While in our case I thought the deadlock was caused by a wrong > locking strategy between the JavaReconcilier and the DefaultClassLoader. Both locks are class loader locks. If you can reproduce the problem, then please try with JRE 7 where the bug should be fixed.