Deadlock/freeze when opening project
(the branch is wip_experiment, but there's no option in the bug tracking system).
Whenever I try to open a certain project, Eclipse freezes (seems to be a strange sort of deadlock) while building the structure. Here's the thread dump. Notice that both the main thread and the Presentation Compiler thread end up running the buildStructure method (called from the JDT, Openable.generateInfos).
I attached the project.
Whenever I try to open a certain project, Eclipse freezes (seems to be a strange sort of deadlock) while building the structure. Here's the thread dump. Notice that both the main thread and the Presentation Compiler thread end up running the buildStructure method (called from the JDT, Openable.generateInfos).
2010-09-29 18:34:41
Full thread dump Java HotSpot(TM) Client VM (16.3-b01-279 mixed mode):
"Attach Listener" daemon prio=9 tid=0000000013304400 nid=0xb235a000 waiting on condition [0000000000000000]
java.lang.Thread.State: RUNNABLE
"Scala Presentation Compiler" daemon prio=4 tid=0000000013ed0400 nid=0xb1c4c000 in Object.wait() [00000000b1c4a000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:485)
at scala.concurrent.SyncVar.get(SyncVar.scala:22)
- locked <0000000016f93a08> (a scala.concurrent.SyncVar)
at scala.tools.nsc.interactive.Response.get(Response.scala:45)
at scala.tools.eclipse.ScalaPresentationCompiler.body(ScalaPresentationCompiler.scala:72)
at scala.tools.eclipse.javaelements.ScalaCompilationUnit$$anonfun$buildStructure$1.apply(ScalaCompilationUnit.scala:92)
at scala.tools.eclipse.javaelements.ScalaCompilationUnit$$anonfun$buildStructure$1.apply(ScalaCompilationUnit.scala:91)
at scala.tools.eclipse.ScalaPresentationCompiler.withSourceFile(ScalaPresentationCompiler.scala:67)
at scala.tools.eclipse.ScalaProject$$anonfun$withSourceFile$1.apply(ScalaProject.scala:369)
at scala.tools.eclipse.ScalaProject$$anonfun$withSourceFile$1.apply(ScalaProject.scala:368)
at scala.tools.eclipse.util.Cached$$anonfun$apply$1.apply$mcV$sp(Cached.scala:22)
at scala.tools.eclipse.util.Cached$$anonfun$apply$1.apply(Cached.scala:21)
at scala.tools.eclipse.util.Cached$$anonfun$apply$1.apply(Cached.scala:21)
at scala.tools.eclipse.util.Cached$class.locked(Cached.scala:83)
at scala.tools.eclipse.util.Cached$class.apply(Cached.scala:20)
at scala.tools.eclipse.ScalaProject$$anon$1.apply(ScalaProject.scala:40)
at scala.tools.eclipse.ScalaProject.withPresentationCompiler(ScalaProject.scala:364)
at scala.tools.eclipse.ScalaProject.withSourceFile(ScalaProject.scala:368)
at scala.tools.eclipse.javaelements.ScalaCompilationUnit$$anonfun$withSourceFile$1.apply(ScalaCompilationUnit.scala:49)
at scala.tools.eclipse.javaelements.ScalaCompilationUnit$class.withDocument(ScalaCompilationUnit.scala:44)
at scala.tools.eclipse.javaelements.ScalaSourceFile.withDocument(ScalaSourceFile.scala:39)
at scala.tools.eclipse.javaelements.ScalaCompilationUnit$class.withSourceFile(ScalaCompilationUnit.scala:49)
at scala.tools.eclipse.javaelements.ScalaSourceFile.withSourceFile(ScalaSourceFile.scala:39)
at scala.tools.eclipse.javaelements.ScalaCompilationUnit$class.buildStructure(ScalaCompilationUnit.scala:91)
at scala.tools.eclipse.javaelements.ScalaSourceFile.buildStructure(ScalaSourceFile.scala:39)
at org.eclipse.jdt.internal.core.Openable.generateInfos(Openable.java:258)
at org.eclipse.jdt.internal.core.JavaElement.openWhenClosed(JavaElement.java:515)
at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:252)
at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:238)
at org.eclipse.jdt.internal.core.JavaElement.getChildren(JavaElement.java:193)
at scala.tools.eclipse.javaelements.ScalaSourceFile.getCorrespondingElement(ScalaSourceFile.scala:99)
at scala.tools.eclipse.javaelements.ScalaSourceFile.getType(ScalaSourceFile.scala:105)
at org.eclipse.jdt.internal.core.JavaModelManager.secondaryTypeAdding(JavaModelManager.java:4111)
at org.eclipse.jdt.internal.core.search.indexing.AbstractIndexer.addTypeDeclaration(AbstractIndexer.java:186)
at org.eclipse.jdt.internal.core.search.indexing.AbstractIndexer.addClassDeclaration(AbstractIndexer.java:47)
at scala.tools.eclipse.javaelements.ScalaIndexBuilder$IndexBuilderTraverser$ModuleOwner$class.addModule(ScalaIndexBuilder.scala:119)
at scala.tools.eclipse.javaelements.ScalaIndexBuilder$IndexBuilderTraverser$Builder.addModule(ScalaIndexBuilder.scala:225)
at scala.tools.eclipse.javaelements.ScalaIndexBuilder$IndexBuilderTraverser.traverse(ScalaIndexBuilder.scala:243)
at scala.reflect.generic.Trees$Traverser$$anonfun$traverseTrees$1.apply(Trees.scala:566)
at scala.reflect.generic.Trees$Traverser$$anonfun$traverseTrees$1.apply(Trees.scala:566)
at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
at scala.collection.immutable.List.foreach(List.scala:45)
at scala.reflect.generic.Trees$Traverser.traverseTrees(Trees.scala:566)
at scala.reflect.generic.Trees$Traverser$$anonfun$traverse$1.apply$mcV$sp(Trees.scala:465)
at scala.reflect.generic.Trees$Traverser.atOwner(Trees.scala:581)
at scala.reflect.generic.Trees$Traverser.traverse(Trees.scala:464)
at scala.tools.nsc.ast.Trees$Traverser.traverse(Trees.scala:901)
at scala.tools.eclipse.javaelements.ScalaIndexBuilder$IndexBuilderTraverser.scala$tools$eclipse$javaelements$ScalaIndexBuilder$IndexBuilderTraverser$$super$traverse(ScalaIndexBuilder.scala:232)
at scala.tools.eclipse.javaelements.ScalaIndexBuilder$IndexBuilderTraverser$$anonfun$traverse$1.apply$mcV$sp(ScalaIndexBuilder.scala:232)
at scala.tools.eclipse.javaelements.ScalaIndexBuilder$IndexBuilderTraverser.atBuilder(ScalaIndexBuilder.scala:303)
at scala.tools.eclipse.javaelements.ScalaIndexBuilder$IndexBuilderTraverser.traverse(ScalaIndexBuilder.scala:232)
at scala.tools.eclipse.javaelements.ScalaCompilationUnit$$anonfun$addToIndexer$1$$anonfun$apply$2.apply$mcV$sp(ScalaCompilationUnit.scala:120)
at scala.tools.eclipse.javaelements.ScalaCompilationUnit$$anonfun$addToIndexer$1$$anonfun$apply$2.apply(ScalaCompilationUnit.scala:119)
at scala.tools.eclipse.javaelements.ScalaCompilationUnit$$anonfun$addToIndexer$1$$anonfun$apply$2.apply(ScalaCompilationUnit.scala:119)
at scala.tools.nsc.util.InterruptReq.liftedTree1$1(InterruptReq.scala:20)
at scala.tools.nsc.util.InterruptReq.execute(InterruptReq.scala:19)
- locked <0000000016fa4f48> (a scala.tools.nsc.util.WorkScheduler$$anon$1)
at scala.tools.nsc.interactive.Global.pollForWork(Global.scala:144)
at scala.tools.nsc.interactive.Global$$anon$3.run(Global.scala:220)
"Worker-20" prio=5 tid=0000000013300400 nid=0xb2054000 waiting on condition [00000000b2053000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at org.eclipse.jdt.internal.core.search.processing.JobManager$1$ProgressJob.run(JobManager.java:354)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
"Worker-17" prio=5 tid=0000000013ece400 nid=0xb2258000 in Object.wait() [00000000b2257000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:185)
- locked <00000000184e95e0> (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)
"Scala Presentation Compiler" prio=6 tid=000000001323a000 nid=0xb1e50000 in Object.wait() [00000000b1e4f000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:485)
at scala.tools.nsc.util.WorkScheduler.waitForMoreWork(WorkScheduler.scala:16)
- locked <000000002fae63f0> (a scala.tools.nsc.util.WorkScheduler)
at scala.tools.nsc.interactive.Global$$anon$3.run(Global.scala:219)
"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=1 tid=00000000135aa400 nid=0xb16c0000 in Object.wait() [00000000b16bf000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:179)
- locked <000000002d428a80> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)
"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=1 tid=00000000130e1c00 nid=0xb2156000 in Object.wait() [00000000b2155000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:179)
- locked <000000002cf75250> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)
"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=1 tid=0000000013241800 nid=0xb1d4e000 in Object.wait() [00000000b1d4d000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:179)
- locked <000000002cbb1628> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)
"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=1 tid=0000000013414800 nid=0xb19c6000 in Object.wait() [00000000b19c5000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:179)
- locked <000000002c6680e8> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)
"Worker-9" prio=5 tid=00000000130f5c00 nid=0xb18c4000 in Object.wait() [00000000b18c3000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:185)
- locked <00000000184e95e0> (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)
"Scala Presentation Compiler" prio=6 tid=00000000138ba000 nid=0xb1f52000 in Object.wait() [00000000b1f51000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <000000001efad020> (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 <000000001efad020> (a scala.tools.nsc.util.WorkScheduler)
at scala.tools.nsc.interactive.Global$$anon$3.run(Global.scala:219)
"[ThreadPool Manager] - Idle Thread" daemon prio=5 tid=0000000013978000 nid=0xb11b6000 in Object.wait() [00000000b11b5000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:485)
at org.eclipse.equinox.internal.util.impl.tpt.threadpool.Executor.run(Executor.java:106)
- locked <000000001cdd5f08> (a org.eclipse.equinox.internal.util.impl.tpt.threadpool.Executor)
"Java indexing" daemon prio=4 tid=0000000013052000 nid=0xb1b4a000 in Object.wait() [00000000b1b49000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:485)
at scala.tools.nsc.util.InterruptReq.liftedTree2$1(InterruptReq.scala:31)
at scala.tools.nsc.util.InterruptReq.getResult(InterruptReq.scala:30)
- locked <0000000016fa4f48> (a scala.tools.nsc.util.WorkScheduler$$anon$1)
at scala.tools.nsc.util.WorkScheduler.doQuickly(WorkScheduler.scala:57)
at scala.tools.nsc.interactive.CompilerControl$class.ask(CompilerControl.scala:160)
at scala.tools.nsc.interactive.Global.ask(Global.scala:18)
at scala.tools.eclipse.javaelements.ScalaCompilationUnit$$anonfun$addToIndexer$1.apply(ScalaCompilationUnit.scala:119)
at scala.tools.eclipse.javaelements.ScalaCompilationUnit$$anonfun$addToIndexer$1.apply(ScalaCompilationUnit.scala:116)
at scala.tools.eclipse.ScalaPresentationCompiler.withSourceFile(ScalaPresentationCompiler.scala:67)
at scala.tools.eclipse.ScalaProject$$anonfun$withSourceFile$1.apply(ScalaProject.scala:369)
at scala.tools.eclipse.ScalaProject$$anonfun$withSourceFile$1.apply(ScalaProject.scala:368)
at scala.tools.eclipse.util.Cached$$anonfun$apply$3.apply(Cached.scala:58)
at scala.tools.eclipse.util.Cached$class.locked(Cached.scala:83)
at scala.tools.eclipse.util.Cached$class.apply(Cached.scala:56)
at scala.tools.eclipse.ScalaProject$$anon$1.apply(ScalaProject.scala:40)
at scala.tools.eclipse.ScalaProject.withPresentationCompiler(ScalaProject.scala:364)
at scala.tools.eclipse.ScalaProject.withSourceFile(ScalaProject.scala:368)
at scala.tools.eclipse.javaelements.ScalaCompilationUnit$$anonfun$withSourceFile$1.apply(ScalaCompilationUnit.scala:49)
at scala.tools.eclipse.javaelements.ScalaCompilationUnit$class.withDocument(ScalaCompilationUnit.scala:44)
at scala.tools.eclipse.javaelements.ScalaSourceFile.withDocument(ScalaSourceFile.scala:39)
at scala.tools.eclipse.javaelements.ScalaCompilationUnit$class.withSourceFile(ScalaCompilationUnit.scala:49)
at scala.tools.eclipse.javaelements.ScalaSourceFile.withSourceFile(ScalaSourceFile.scala:39)
at scala.tools.eclipse.javaelements.ScalaCompilationUnit$class.addToIndexer(ScalaCompilationUnit.scala:116)
at scala.tools.eclipse.javaelements.ScalaSourceFile.addToIndexer(ScalaSourceFile.scala:39)
at scala.tools.eclipse.ScalaSourceIndexer$$anonfun$indexDocument$1.apply(ScalaSourceIndexer.scala:23)
at scala.tools.eclipse.ScalaSourceIndexer$$anonfun$indexDocument$1.apply(ScalaSourceIndexer.scala:23)
at scala.Option.map(Option.scala:129)
at scala.tools.eclipse.ScalaSourceIndexer.indexDocument(ScalaSourceIndexer.scala:23)
at scala.tools.eclipse.contribution.weaving.jdt.indexerprovider.IndexerProviderAspect.ajc$around$scala_tools_eclipse_contribution_weaving_jdt_indexerprovider_IndexerProviderAspect$1$16276a3c(IndexerProviderAspect.aj:30)
at org.eclipse.jdt.internal.core.search.JavaSearchParticipant.indexDocument(JavaSearchParticipant.java:68)
at org.eclipse.jdt.internal.core.search.indexing.IndexManager.indexDocument(IndexManager.java:359)
at org.eclipse.jdt.internal.core.search.indexing.IndexManager$1.execute(IndexManager.java:734)
at org.eclipse.jdt.internal.core.search.processing.JobManager.run(JobManager.java:404)
at java.lang.Thread.run(Thread.java:637)
"[Timer] - Main Queue Handler" daemon prio=5 tid=0000000013924c00 nid=0xb17c2000 in Object.wait() [00000000b17c1000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.eclipse.equinox.internal.util.impl.tpt.timer.TimerImpl.run(TimerImpl.java:141)
- locked <0000000018985680> (a java.lang.Object)
at java.lang.Thread.run(Thread.java:637)
"Provisioning Event Dispatcher" daemon prio=5 tid=0000000013189000 nid=0xb15be000 in Object.wait() [00000000b15bd000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <000000001869d408> (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 <000000001869d408> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:333)
"Start Level Event Dispatcher" daemon prio=5 tid=0000000013139000 nid=0xb13ba000 in Object.wait() [00000000b13b9000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <000000001828b698> (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 <000000001828b698> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:333)
"Framework Event Dispatcher" daemon prio=5 tid=0000000013138000 nid=0xb12b8000 in Object.wait() [00000000b12b7000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <000000001828b710> (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 <000000001828b710> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:333)
"Bundle File Closer" daemon prio=5 tid=00000000130c2800 nid=0xb10b4000 in Object.wait() [00000000b10b3000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0000000018130a50> (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 <0000000018130a50> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:333)
"State Data Manager" daemon prio=5 tid=00000000130c0000 nid=0xb0fb2000 waiting on condition [00000000b0fb1000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at org.eclipse.osgi.internal.baseadaptor.StateManager.run(StateManager.java:306)
at java.lang.Thread.run(Thread.java:637)
"Poller SunPKCS11-Darwin" daemon prio=1 tid=00000000130a0400 nid=0xb0e25000 waiting on condition [00000000b0e24000]
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:637)
"Low Memory Detector" daemon prio=5 tid=0000000013021c00 nid=0xb0c21000 runnable [0000000000000000]
java.lang.Thread.State: RUNNABLE
"CompilerThread0" daemon prio=9 tid=0000000013020c00 nid=0xb0b17000 waiting on condition [0000000000000000]
java.lang.Thread.State: RUNNABLE
"Signal Dispatcher" daemon prio=9 tid=000000001301fc00 nid=0xb0a15000 runnable [0000000000000000]
java.lang.Thread.State: RUNNABLE
"Surrogate Locker Thread (CMS)" daemon prio=5 tid=000000001301ec00 nid=0xb0913000 waiting on condition [0000000000000000]
java.lang.Thread.State: RUNNABLE
"Finalizer" daemon prio=8 tid=0000000013013400 nid=0xb0811000 in Object.wait() [00000000b0810000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
- locked <0000000018010020> (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=0000000013897000 nid=0xb070f000 in Object.wait() [00000000b070e000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:485)
at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
- locked <0000000018010030> (a java.lang.ref.Reference$Lock)
"main" prio=6 tid=0000000013800c00 nid=0xa0ac2500 in Object.wait() [00000000bfffc000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:485)
at scala.concurrent.SyncVar.get(SyncVar.scala:22)
- locked <000000001700c658> (a scala.concurrent.SyncVar)
at scala.tools.nsc.interactive.Response.get(Response.scala:45)
at scala.tools.eclipse.ScalaPresentationCompiler.body(ScalaPresentationCompiler.scala:72)
at scala.tools.eclipse.javaelements.ScalaCompilationUnit$$anonfun$buildStructure$1.apply(ScalaCompilationUnit.scala:92)
at scala.tools.eclipse.javaelements.ScalaCompilationUnit$$anonfun$buildStructure$1.apply(ScalaCompilationUnit.scala:91)
at scala.tools.eclipse.ScalaPresentationCompiler.withSourceFile(ScalaPresentationCompiler.scala:67)
at scala.tools.eclipse.ScalaProject$$anonfun$withSourceFile$1.apply(ScalaProject.scala:369)
at scala.tools.eclipse.ScalaProject$$anonfun$withSourceFile$1.apply(ScalaProject.scala:368)
at scala.tools.eclipse.util.Cached$$anonfun$apply$1.apply$mcV$sp(Cached.scala:22)
at scala.tools.eclipse.util.Cached$$anonfun$apply$1.apply(Cached.scala:21)
at scala.tools.eclipse.util.Cached$$anonfun$apply$1.apply(Cached.scala:21)
at scala.tools.eclipse.util.Cached$class.locked(Cached.scala:83)
at scala.tools.eclipse.util.Cached$class.apply(Cached.scala:20)
at scala.tools.eclipse.ScalaProject$$anon$1.apply(ScalaProject.scala:40)
at scala.tools.eclipse.ScalaProject.withPresentationCompiler(ScalaProject.scala:364)
at scala.tools.eclipse.ScalaProject.withSourceFile(ScalaProject.scala:368)
at scala.tools.eclipse.javaelements.ScalaCompilationUnit$$anonfun$withSourceFile$1.apply(ScalaCompilationUnit.scala:49)
at scala.tools.eclipse.javaelements.ScalaCompilationUnit$class.withDocument(ScalaCompilationUnit.scala:44)
at scala.tools.eclipse.javaelements.ScalaSourceFile.withDocument(ScalaSourceFile.scala:39)
at scala.tools.eclipse.javaelements.ScalaCompilationUnit$class.withSourceFile(ScalaCompilationUnit.scala:49)
at scala.tools.eclipse.javaelements.ScalaSourceFile.withSourceFile(ScalaSourceFile.scala:39)
at scala.tools.eclipse.javaelements.ScalaCompilationUnit$class.buildStructure(ScalaCompilationUnit.scala:91)
at scala.tools.eclipse.javaelements.ScalaSourceFile.buildStructure(ScalaSourceFile.scala:39)
at org.eclipse.jdt.internal.core.Openable.generateInfos(Openable.java:258)
at org.eclipse.jdt.internal.core.JavaElement.openWhenClosed(JavaElement.java:515)
at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:252)
at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:238)
at org.eclipse.jdt.internal.core.JavaElement.getChildren(JavaElement.java:193)
at org.eclipse.jdt.internal.core.JavaElement.getChildrenOfType(JavaElement.java:207)
at org.eclipse.jdt.internal.core.CompilationUnit.getTypes(CompilationUnit.java:920)
at org.eclipse.jdt.internal.corext.refactoring.util.JavaElementUtil.getMainType(JavaElementUtil.java:90)
at org.eclipse.jdt.internal.corext.refactoring.RefactoringAvailabilityTester.getSingleSelectedType(RefactoringAvailabilityTester.java:157)
at org.eclipse.jdt.ui.actions.ExtractClassAction.selectionChanged(ExtractClassAction.java:81)
at org.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchSelectionChanged(SelectionDispatchAction.java:262)
at org.eclipse.jdt.ui.actions.SelectionDispatchAction.selectionChanged(SelectionDispatchAction.java:257)
at org.eclipse.jface.viewers.Viewer$2.run(Viewer.java:162)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.core.runtime.Platform.run(Platform.java:888)
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.Viewer.fireSelectionChanged(Viewer.java:160)
at org.eclipse.jface.viewers.StructuredViewer.updateSelection(StructuredViewer.java:2132)
at org.eclipse.jface.viewers.StructuredViewer.handleSelect(StructuredViewer.java:1160)
at org.eclipse.jface.viewers.StructuredViewer$4.widgetSelected(StructuredViewer.java:1190)
at org.eclipse.jface.util.OpenStrategy.fireSelectionEvent(OpenStrategy.java:228)
at org.eclipse.jface.util.OpenStrategy.access$4(OpenStrategy.java:222)
at org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrategy.java:389)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:3543)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1250)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1273)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258)
at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1079)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3441)
at org.eclipse.swt.widgets.Display.applicationNextEventMatchingMask(Display.java:4184)
at org.eclipse.swt.widgets.Display.applicationProc(Display.java:4386)
at org.eclipse.swt.internal.cocoa.OS.objc_msgSendSuper(Native Method)
at org.eclipse.swt.widgets.Widget.callSuper(Widget.java:202)
at org.eclipse.swt.widgets.Widget.mouseDown(Widget.java:920)
at org.eclipse.swt.widgets.Control.mouseDown(Control.java:2160)
at org.eclipse.swt.widgets.Tree.mouseDown(Tree.java:1914)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:4653)
at org.eclipse.swt.internal.cocoa.OS.objc_msgSendSuper(Native Method)
at org.eclipse.swt.widgets.Widget.callSuper(Widget.java:202)
at org.eclipse.swt.widgets.Widget.windowSendEvent(Widget.java:1753)
at org.eclipse.swt.widgets.Shell.windowSendEvent(Shell.java:1825)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:4713)
at org.eclipse.swt.internal.cocoa.OS.objc_msgSendSuper(Native Method)
at org.eclipse.swt.widgets.Display.applicationSendEvent(Display.java:4285)
at org.eclipse.swt.widgets.Display.applicationProc(Display.java:4352)
at org.eclipse.swt.internal.cocoa.OS.objc_msgSend(Native Method)
at org.eclipse.swt.internal.cocoa.NSApplication.sendEvent(NSApplication.java:101)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3097)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2405)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2369)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2221)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:493)
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:194)
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:368)
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:559)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514)
at org.eclipse.equinox.launcher.Main.run(Main.java:1311)
"VM Thread" prio=9 tid=0000000013011800 nid=0xb060d000 runnable
"Gang worker#0 (Parallel GC Threads)" prio=9 tid=0000000013802c00 nid=0xb0307000 runnable
"Gang worker#1 (Parallel GC Threads)" prio=9 tid=0000000013803800 nid=0xb0409000 runnable
"Concurrent Mark-Sweep GC Thread" prio=9 tid=0000000013868c00 nid=0xb050b000 runnable
"VM Periodic Task Thread" prio=10 tid=000000001302b000 nid=0xb0d23000 waiting on condition
"Exception Catcher Thread" prio=10 tid=0000000013801800 nid=0xb0205000 runnable
JNI global references: 2449
I attached the project.
Leave a comment
on 2010-09-29 09:49 *
By Iulian Dragos
Sorry, it freezes when I try to open the source file, not the project.
This should be fixed now - the line numbers tell me you use the old version. In the current version when ScalaPresentationCompiler is asked for something from inside compiler thread a direct call is made rather than posting a request and waiting.
on 2010-09-29 11:08 *
By Iulian Dragos
Yeap, sorry for the confusion. I did a 'git fetch' but forgot that it didn't merge. Now it's fine!