Hangs when opening the Project view

Since the last EAP update and with plugin b.863, I'm seeing hangs whe I open the Project view. It seems that the AWT-EventQueue thread is the culprit. Here are few dumps:


"AWT-EventQueue-1 9.0.2#IU-94.585, eap:true" prio=6 tid=0x000000000a08d000 nid=0x155c runnable [0x00000000094ae000]
   java.lang.Thread.State: RUNNABLE
    at sun.awt.windows.WGlobalCursorManager.findHeavyweightUnderCursor(Native Method)
    at sun.awt.GlobalCursorManager._updateCursor(GlobalCursorManager.java:166)
    at sun.awt.GlobalCursorManager.updateCursorImmediately(GlobalCursorManager.java:82)
    at sun.awt.windows.WComponentPeer.updateCursorImmediately(WComponentPeer.java:604)
    at java.awt.Component.updateCursorImmediately(Component.java:2919)
    at java.awt.Container.validate(Container.java:1488)
    at javax.swing.plaf.basic.BasicTreeUI$NodeDimensionsHandler.getNodeDimensions(BasicTreeUI.java:2719)
    at javax.swing.tree.AbstractLayoutCache.getNodeDimensions(AbstractLayoutCache.java:475)
    at javax.swing.tree.VariableHeightLayoutCache$TreeStateNode.updatePreferredSize(VariableHeightLayoutCache.java:1342)
    at javax.swing.tree.VariableHeightLayoutCache$TreeStateNode.updatePreferredSize(VariableHeightLayoutCache.java:1333)
    at javax.swing.tree.VariableHeightLayoutCache.treeNodesChanged(VariableHeightLayoutCache.java:418)
    at javax.swing.plaf.basic.BasicTreeUI$Handler.treeNodesChanged(BasicTreeUI.java:3759)
    at javax.swing.tree.DefaultTreeModel.fireTreeNodesChanged(DefaultTreeModel.java:468)
    at javax.swing.tree.DefaultTreeModel.nodesChanged(DefaultTreeModel.java:330)
    at javax.swing.tree.DefaultTreeModel.nodeChanged(DefaultTreeModel.java:261)
    at com.intellij.ide.util.treeView.AbstractTreeUi.updateNodeImageAndPosition(AbstractTreeUi.java:2739)
    at com.intellij.ide.util.treeView.AbstractTreeUi.access$2200(AbstractTreeUi.java:55)
    at com.intellij.ide.util.treeView.AbstractTreeUi$17$1.run(AbstractTreeUi.java:796)
    at com.intellij.util.ui.UIUtil.invokeLaterIfNeeded(UIUtil.java:1003)
    at com.intellij.ide.util.treeView.AbstractTreeUi$17.run(AbstractTreeUi.java:789)
    at com.intellij.ide.util.treeView.AbstractTreeUi$17.run(AbstractTreeUi.java:785)
    at com.intellij.openapi.util.AsyncResult$1.run(AsyncResult.java:31)
    at com.intellij.openapi.util.ExecutionCallback.callback(ExecutionCallback.java:72)
    at com.intellij.openapi.util.ExecutionCallback.doWhenExecuted(ExecutionCallback.java:53)
    at com.intellij.openapi.util.ActionCallback.doWhenDone(ActionCallback.java:85)
    at com.intellij.openapi.util.AsyncResult.doWhenDone(AsyncResult.java:29)
    at com.intellij.ide.util.treeView.AbstractTreeUi.update(AbstractTreeUi.java:785)
    at com.intellij.ide.util.treeView.AbstractTreeUi.processExistingNode(AbstractTreeUi.java:2238)
    at com.intellij.ide.util.treeView.AbstractTreeUi.access$4000(AbstractTreeUi.java:55)
    at com.intellij.ide.util.treeView.AbstractTreeUi$26$1.run(AbstractTreeUi.java:1394)
    at com.intellij.ide.util.treeView.AbstractTreeUi$27.run(AbstractTreeUi.java:1451)
    at com.intellij.ide.util.treeView.AbstractTreeUi.executeYieldingRequest(AbstractTreeUi.java:1519)
    at com.intellij.ide.util.treeView.AbstractTreeUi.access$4300(AbstractTreeUi.java:55)
    at com.intellij.ide.util.treeView.AbstractTreeUi$28$1.run(AbstractTreeUi.java:1487)
    at com.intellij.util.ui.UIUtil.invokeLaterIfNeeded(UIUtil.java:1003)
    at com.intellij.ide.util.treeView.AbstractTreeBuilder.runOnYeildingDone(AbstractTreeBuilder.java:314)
    at com.intellij.ide.util.treeView.AbstractTreeUi.runOnYieldingDone(AbstractTreeUi.java:1593)
    at com.intellij.ide.util.treeView.AbstractTreeUi$28.run(AbstractTreeUi.java:1485)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
    at com.intellij.ide.IdeEventQueue.f(IdeEventQueue.java:610)
    at com.intellij.ide.IdeEventQueue.b(IdeEventQueue.java:500)
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:368)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)



"AWT-EventQueue-1 9.0.2#IU-94.585, eap:true" prio=6 tid=0x000000000a08d000 nid=0x155c runnable [0x00000000094ae000]
   java.lang.Thread.State: RUNNABLE
    at javax.swing.tree.VariableHeightLayoutCache.treeNodesChanged(VariableHeightLayoutCache.java:429)
    at javax.swing.plaf.basic.BasicTreeUI$Handler.treeNodesChanged(BasicTreeUI.java:3759)
    at javax.swing.tree.DefaultTreeModel.fireTreeNodesChanged(DefaultTreeModel.java:468)
    at javax.swing.tree.DefaultTreeModel.nodesChanged(DefaultTreeModel.java:330)
    at javax.swing.tree.DefaultTreeModel.nodeChanged(DefaultTreeModel.java:261)
    at com.intellij.ide.util.treeView.AbstractTreeUi.updateNodeImageAndPosition(AbstractTreeUi.java:2739)
    at com.intellij.ide.util.treeView.AbstractTreeUi.access$2200(AbstractTreeUi.java:55)
    at com.intellij.ide.util.treeView.AbstractTreeUi$17$1.run(AbstractTreeUi.java:796)
    at com.intellij.util.ui.UIUtil.invokeLaterIfNeeded(UIUtil.java:1003)
    at com.intellij.ide.util.treeView.AbstractTreeUi$17.run(AbstractTreeUi.java:789)
    at com.intellij.ide.util.treeView.AbstractTreeUi$17.run(AbstractTreeUi.java:785)
    at com.intellij.openapi.util.AsyncResult$1.run(AsyncResult.java:31)
    at com.intellij.openapi.util.ExecutionCallback.callback(ExecutionCallback.java:72)
    at com.intellij.openapi.util.ExecutionCallback.doWhenExecuted(ExecutionCallback.java:53)
    at com.intellij.openapi.util.ActionCallback.doWhenDone(ActionCallback.java:85)
    at com.intellij.openapi.util.AsyncResult.doWhenDone(AsyncResult.java:29)
    at com.intellij.ide.util.treeView.AbstractTreeUi.update(AbstractTreeUi.java:785)
    at com.intellij.ide.util.treeView.AbstractTreeUi.processExistingNode(AbstractTreeUi.java:2238)
    at com.intellij.ide.util.treeView.AbstractTreeUi.access$4000(AbstractTreeUi.java:55)
    at com.intellij.ide.util.treeView.AbstractTreeUi$26$1.run(AbstractTreeUi.java:1394)
    at com.intellij.ide.util.treeView.AbstractTreeUi$27.run(AbstractTreeUi.java:1451)
    at com.intellij.ide.util.treeView.AbstractTreeUi.executeYieldingRequest(AbstractTreeUi.java:1519)
    at com.intellij.ide.util.treeView.AbstractTreeUi.access$4300(AbstractTreeUi.java:55)
    at com.intellij.ide.util.treeView.AbstractTreeUi$28$1.run(AbstractTreeUi.java:1487)
    at com.intellij.util.ui.UIUtil.invokeLaterIfNeeded(UIUtil.java:1003)
    at com.intellij.ide.util.treeView.AbstractTreeBuilder.runOnYeildingDone(AbstractTreeBuilder.java:314)
    at com.intellij.ide.util.treeView.AbstractTreeUi.runOnYieldingDone(AbstractTreeUi.java:1593)
    at com.intellij.ide.util.treeView.AbstractTreeUi$28.run(AbstractTreeUi.java:1485)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
    at com.intellij.ide.IdeEventQueue.f(IdeEventQueue.java:610)
    at com.intellij.ide.IdeEventQueue.b(IdeEventQueue.java:500)
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:368)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

12 comments

Seems the hang not on opening the project view, but whenever its open:


"AWT-EventQueue-1 9.0.2#IU-94.585, eap:true" prio=6 tid=0x000000000a08d000 nid=0x155c runnable [0x00000000094ae000]
   java.lang.Thread.State: RUNNABLE
    at com.intellij.psi.impl.source.tree.TreeElement.getElementType(TreeElement.java:366)
    at com.intellij.psi.impl.source.tree.CompositeElement.findChildByType(CompositeElement.java:128)
    at com.intellij.extapi.psi.ASTDelegatePsiElement.findChildByType(ASTDelegatePsiElement.java:147)
    at org.jetbrains.plugins.scala.lang.psi.impl.base.ScStableCodeReferenceElementImpl.nameId(ScStableCodeReferenceElementImpl.scala:163)
    at org.jetbrains.plugins.scala.lang.psi.api.base.ScReferenceElement$class.refName(ScReferenceElement.scala:50)
    at org.jetbrains.plugins.scala.lang.psi.impl.base.ScStableCodeReferenceElementImpl.refName(ScStableCodeReferenceElementImpl.scala:38)
    at org.jetbrains.plugins.scala.lang.psi.api.base.ScStableCodeReferenceElement$class.qualName(ScStableCodeReferenceElement.scala:17)
    at org.jetbrains.plugins.scala.lang.psi.impl.base.ScStableCodeReferenceElementImpl.qualName(ScStableCodeReferenceElementImpl.scala:38)
    at org.jetbrains.plugins.scala.lang.psi.api.base.ScStableCodeReferenceElement$class.qualName(ScStableCodeReferenceElement.scala:15)
    at org.jetbrains.plugins.scala.lang.psi.impl.base.ScStableCodeReferenceElementImpl.qualName(ScStableCodeReferenceElementImpl.scala:38)
    at org.jetbrains.plugins.scala.lang.psi.impl.toplevel.packaging.ScPackagingImpl.ownNamePart(ScPackagingImpl.scala:56)
    at org.jetbrains.plugins.scala.lang.psi.impl.toplevel.packaging.ScPackagingImpl.getPackageName(ScPackagingImpl.scala:39)
    at org.jetbrains.plugins.scala.lang.psi.impl.toplevel.typedef.ScTypeDefinitionImpl$$anonfun$_packageName$1$2.apply(ScTypeDefinitionImpl.scala:116)
    at org.jetbrains.plugins.scala.lang.psi.impl.toplevel.typedef.ScTypeDefinitionImpl$$anonfun$_packageName$1$2.apply(ScTypeDefinitionImpl.scala:116)
    at org.jetbrains.plugins.scala.lang.psi.impl.toplevel.typedef.ScTypeDefinitionImpl._packageName$1(ScTypeDefinitionImpl.scala:117)
    at org.jetbrains.plugins.scala.lang.psi.impl.toplevel.typedef.ScTypeDefinitionImpl.qualifiedName(ScTypeDefinitionImpl.scala:126)
    at org.jetbrains.plugins.scala.lang.psi.impl.toplevel.typedef.ScTypeDefinitionImpl.getQualifiedName(ScTypeDefinitionImpl.scala:107)
    at com.intellij.ide.projectView.impl.nodes.ClassTreeNode.getTitle(ClassTreeNode.java:103)
    at com.intellij.ide.projectView.impl.ProjectViewImpl.i(ProjectViewImpl.java:755)
    at com.intellij.ide.projectView.impl.ProjectViewImpl.access$200(ProjectViewImpl.java:116)
    at com.intellij.ide.projectView.impl.ProjectViewImpl$2.run(ProjectViewImpl.java:212)
    at com.intellij.ide.projectView.impl.AbstractProjectViewPane.fireTreeChangeListener(AbstractProjectViewPane.java:91)
    at com.intellij.ide.projectView.impl.AbstractProjectViewPSIPane$2.treeNodesChanged(AbstractProjectViewPSIPane.java:106)
    at javax.swing.tree.DefaultTreeModel.fireTreeNodesChanged(DefaultTreeModel.java:468)
    at javax.swing.tree.DefaultTreeModel.nodesChanged(DefaultTreeModel.java:330)
    at javax.swing.tree.DefaultTreeModel.nodeChanged(DefaultTreeModel.java:261)
    at com.intellij.ide.util.treeView.AbstractTreeUi.updateNodeImageAndPosition(AbstractTreeUi.java:2739)
    at com.intellij.ide.util.treeView.AbstractTreeUi.access$2200(AbstractTreeUi.java:55)
    at com.intellij.ide.util.treeView.AbstractTreeUi$17$1.run(AbstractTreeUi.java:796)
    at com.intellij.util.ui.UIUtil.invokeLaterIfNeeded(UIUtil.java:1003)
    at com.intellij.ide.util.treeView.AbstractTreeUi$17.run(AbstractTreeUi.java:789)
    at com.intellij.ide.util.treeView.AbstractTreeUi$17.run(AbstractTreeUi.java:785)
    at com.intellij.openapi.util.AsyncResult$1.run(AsyncResult.java:31)
    at com.intellij.openapi.util.ExecutionCallback.callback(ExecutionCallback.java:72)
    at com.intellij.openapi.util.ExecutionCallback.doWhenExecuted(ExecutionCallback.java:53)
    at com.intellij.openapi.util.ActionCallback.doWhenDone(ActionCallback.java:85)
    at com.intellij.openapi.util.AsyncResult.doWhenDone(AsyncResult.java:29)
    at com.intellij.ide.util.treeView.AbstractTreeUi.update(AbstractTreeUi.java:785)
    at com.intellij.ide.util.treeView.AbstractTreeUi.access$1400(AbstractTreeUi.java:55)
    at com.intellij.ide.util.treeView.AbstractTreeUi$40.run(AbstractTreeUi.java:2261)
    at com.intellij.ide.util.treeView.AbstractTreeUi$40.run(AbstractTreeUi.java:2241)
    at com.intellij.openapi.util.AsyncResult$1.run(AsyncResult.java:31)
    at com.intellij.openapi.util.ExecutionCallback.callback(ExecutionCallback.java:72)
    at com.intellij.openapi.util.ExecutionCallback.doWhenExecuted(ExecutionCallback.java:53)
    at com.intellij.openapi.util.ActionCallback.doWhenDone(ActionCallback.java:85)
    at com.intellij.openapi.util.AsyncResult.doWhenDone(AsyncResult.java:29)
    at com.intellij.ide.util.treeView.AbstractTreeUi.processExistingNode(AbstractTreeUi.java:2241)
    at com.intellij.ide.util.treeView.AbstractTreeUi.access$4000(AbstractTreeUi.java:55)
    at com.intellij.ide.util.treeView.AbstractTreeUi$26$1.run(AbstractTreeUi.java:1394)
    at com.intellij.ide.util.treeView.AbstractTreeUi$27.run(AbstractTreeUi.java:1451)
    at com.intellij.ide.util.treeView.AbstractTreeUi.executeYieldingRequest(AbstractTreeUi.java:1519)
    at com.intellij.ide.util.treeView.AbstractTreeUi.access$4300(AbstractTreeUi.java:55)
    at com.intellij.ide.util.treeView.AbstractTreeUi$28$1.run(AbstractTreeUi.java:1487)
    at com.intellij.util.ui.UIUtil.invokeLaterIfNeeded(UIUtil.java:1003)
    at com.intellij.ide.util.treeView.AbstractTreeBuilder.runOnYeildingDone(AbstractTreeBuilder.java:314)
    at com.intellij.ide.util.treeView.AbstractTreeUi.runOnYieldingDone(AbstractTreeUi.java:1593)
    at com.intellij.ide.util.treeView.AbstractTreeUi$28.run(AbstractTreeUi.java:1485)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
    at com.intellij.ide.IdeEventQueue.f(IdeEventQueue.java:610)
    at com.intellij.ide.IdeEventQueue.b(IdeEventQueue.java:500)
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:368)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

0

Upgrade to maia 633 and still see hangs when the project view is open. (I tried the hiding-of-the-toolbar trick to no avail)

0

Nothing strange in this thread dumps. Can you send me full thread dump for all processes? What kind of hangs did you see?

Best regards,
Alexander Podkhalyuzin.

0

I opened the project view and captured set a sucessive dumps until the hang cleared up (attached). While hung the entire IDE is unresponsive to any input. I also see this problem occur while the project view is already open, but I can't tell what the trigger is.

-barry



Attachment(s):
102.txt.zip
57.txt.zip
55.txt.zip
52.txt.zip
47.txt.zip
0

Here's another one just for reference. The last dump was just after the IDE started responding (nearly a minute later).



Attachment(s):
hang.zip
0

It has nothting to do with the version of idea or the scala plugin, but rather how my maven project is imported:

My directory structure looks like:

- pom.xml  (has <modules>...</module> for the modules in the subdirectories)
-- module1
-- module2
-- module3
-- ...
-- non-module1
-- non-module2
-- non-module3
-- ...

The directory structure under the pom.xml directory contains both maven/idea modules and directories that are not modules.

When idea imports the pom.xml it creates a idea module for each of module* (as per the <module> tag), but it also creates a module for the root/parent pom.xml. And this root/parent module has every subdirectory included in its idea module (not marked as source or test, but also not excluded). After I marked *all* the directories in the root/parent idea module as excluded my performance in the project view was back to normal.

So I wonder whether I'm doing something wrong with my maven import that requires I perform this manual step....

Sorry for the false alarm Alexander.

-barry

0

While the above seemed to work, after few minutes of work and the hang is worse than ever. Pretty much any action with the project view opened locks up the IDE for a minute plus. I opened very large java projects (eg, camel, drools) to see if they too exhibit this problem, but they show no locks. This is very frustrating and I wish I was able to provide better infol.

0

Well, one tidbit is that taking focus away from Idea (say to write this post) and then clicking back will trigger the hang (if the project view is open)

0

Just as an FYI. I've haven't seen this problem for a few days. But I also haven't upgraded. Then today I flattened the packages in the project view, and bang! I get the hang. When I selected to unflatten Idea never came back from the hang, I had to kill it.

So maybe this is scala related and maybe not. My project uses lots of third party libraries, so flattening could be a big deal. Anyway I will search the main maia list/tracker and see if others are seeing this problem. At least it seems that without flattening packages all works well.

0

Hi.

I'm also experiencing lots of Exceptions since update to IDEA RC1 and the latest Scala plugin.
As the OP mentioned the IDE is unresponsive and locks up. Almost unusable right now.
I don't use maven, just a plain Scala project.
Here is an exception that I get:

null
java.lang.StackOverflowError
at java.util.AbstractList$Itr.<init>(AbstractList.java:318)
at java.util.AbstractList.iterator(AbstractList.java:273)
at com.intellij.util.SmartList.iterator(SmartList.java:143)
at com.intellij.psi.stubs.StubBase.countChildren(StubBase.java:122)
at com.intellij.psi.stubs.StubBase.getChildrenByType(StubBase.java:112)
at org.jetbrains.plugins.scala.lang.psi.api.toplevel.ScTypeParametersOwner$class.typeParametersClause(ScTypeParametersOwner.scala:25)
at org.jetbrains.plugins.scala.lang.psi.impl.toplevel.typedef.ScTypeDefinitionImpl.typeParametersClause(ScTypeDefinitionImpl.scala:51)
at org.jetbrains.plugins.scala.lang.psi.api.toplevel.ScTypeParametersOwner$class.typeParameters(ScTypeParametersOwner.scala:15)
at org.jetbrains.plugins.scala.lang.psi.impl.toplevel.typedef.ScTypeDefinitionImpl.typeParameters(ScTypeDefinitionImpl.scala:51)
at org.jetbrains.plugins.scala.lang.psi.impl.toplevel.typedef.ScTypeDefinitionImpl.getTypeParameters(ScTypeDefinitionImpl.scala:167)
at org.jetbrains.plugins.scala.lang.psi.impl.toplevel.typedef.MixinNodes$.linearizationInner(MixinNodes.scala:293)
at org.jetbrains.plugins.scala.lang.psi.impl.toplevel.typedef.MixinNodes$.linearization(MixinNodes.scala:240)
at org.jetbrains.plugins.scala.lang.psi.impl.toplevel.typedef.MixinNodes$.linearizationInner(MixinNodes.scala:332)
at org.jetbrains.plugins.scala.lang.psi.impl.toplevel.typedef.MixinNodes$.linearization(MixinNodes.scala:240)
at org.jetbrains.plugins.scala.lang.psi.impl.toplevel.typedef.MixinNodes$.linearizationInner(MixinNodes.scala:332)
at org.jetbrains.plugins.scala.lang.psi.impl.toplevel.typedef.MixinNodes$.linearization(MixinNodes.scala:240)
at org.jetbrains.plugins.scala.lang.psi.impl.toplevel.typedef.MixinNodes$.linearizationInner(MixinNodes.scala:332)
at org.jetbrains.plugins.scala.lang.psi.impl.toplevel.typedef.MixinNodes$.linearization(MixinNodes.scala:240)
at org.jetbrains.plugins.scala.lang.psi.impl.toplevel.typedef.MixinNodes$.linearizationInner(MixinNodes.scala:332)
at org.jetbrains.plugins.scala.lang.psi.impl.toplevel.typedef.MixinNodes$.linearization(MixinNodes.scala:240)



... this repeats a lot.
0

Please give me an example or hints to reproduce this SOE. Thank you.

Best regards,
Alexander Podkhalyuzin.

0

Hi Alexander.

I believe I had by accident produced an inheritance tree of classes with one trait mixed in some of them which may had been something cyclic.
I removed that and since then I don't see the exception any more.

Hope this helps.


Manfred

0

Please sign in to leave a comment.