antlr / intellij-plugin-v4

An IntelliJ plugin for ANTLR v4
https://plugins.jetbrains.com/plugin/7358-antlr-v4
BSD 3-Clause "New" or "Revised" License
465 stars 103 forks source link

Bugs with IntelliJ 2020.1.1 #398

Open pwilkin opened 4 years ago

pwilkin commented 4 years ago
java.lang.Throwable: Cannot add a widget for project without root status bar: GridPosition
    at com.intellij.openapi.diagnostic.Logger.error(Logger.java:146)
    at com.intellij.openapi.wm.impl.status.widget.StatusBarWidgetsManager.enableWidget(StatusBarWidgetsManager.java:122)
    at com.intellij.openapi.wm.impl.status.widget.StatusBarWidgetsManager.updateWidget(StatusBarWidgetsManager.java:77)
    at com.intellij.openapi.wm.impl.status.widget.StatusBarWidgetsManager.updateAllWidgets(StatusBarWidgetsManager.java:61)
    at com.intellij.openapi.wm.impl.ProjectFrameHelper.installDefaultProjectStatusBarWidgets(ProjectFrameHelper.java:401)
    at com.intellij.openapi.wm.impl.ProjectFrameHelper.setProject(ProjectFrameHelper.java:384)
    at com.intellij.openapi.wm.impl.WindowManagerImpl.allocateFrame(WindowManagerImpl.java:572)
    at com.intellij.openapi.wm.impl.WindowManagerImpl.allocateFrame(WindowManagerImpl.java:527)
    at com.intellij.openapi.wm.impl.ToolWindowManagerImpl.doRegisterToolWindow(ToolWindowManagerImpl.kt:936)
    at com.intellij.openapi.wm.impl.ToolWindowManagerImpl.registerToolWindow(ToolWindowManagerImpl.kt:926)
    at com.intellij.openapi.wm.ToolWindowManager.registerToolWindow(ToolWindowManager.kt:45)
    at org.antlr.intellij.plugin.ANTLRv4PluginController.createToolWindows(ANTLRv4PluginController.java:136)
    at org.antlr.intellij.plugin.ANTLRv4PluginController.projectOpened(ANTLRv4PluginController.java:122)
    at com.intellij.openapi.project.impl.ProjectManagerImpl.lambda$null$13(ProjectManagerImpl.java:791)
    at com.intellij.ide.startup.impl.StartupManagerImpl.runActivity(StartupManagerImpl.java:458)
    at com.intellij.openapi.project.impl.ProjectManagerImpl.lambda$fireProjectOpened$14(ProjectManagerImpl.java:789)
    at com.intellij.serviceContainer.ContainerUtilKt.processProjectComponents(containerUtil.kt:31)
    at com.intellij.openapi.project.impl.ProjectManagerImpl.fireProjectOpened(ProjectManagerImpl.java:788)
    at com.intellij.openapi.project.impl.ProjectManagerImpl.lambda$doLoadProject$6(ProjectManagerImpl.java:456)
    at com.intellij.openapi.application.impl.ApplicationImpl.invokeAndWait(ApplicationImpl.java:467)
    at com.intellij.openapi.application.impl.ApplicationImpl.invokeAndWait(ApplicationImpl.java:485)
    at com.intellij.openapi.project.impl.ProjectManagerImpl.doLoadProject(ProjectManagerImpl.java:450)
    at com.intellij.openapi.project.impl.ProjectManagerImpl.openProject(ProjectManagerImpl.java:430)
    at com.intellij.projectImport.ProjectOpenProcessorBase.doOpenProject(ProjectOpenProcessorBase.java:246)
    at com.intellij.ide.impl.ProjectUtil.lambda$chooseProcessorAndOpen$3(ProjectUtil.java:194)
    at com.intellij.openapi.application.impl.ApplicationImpl.invokeAndWait(ApplicationImpl.java:467)
    at com.intellij.openapi.application.impl.ApplicationImpl.invokeAndWait(ApplicationImpl.java:485)
    at com.intellij.ide.impl.ProjectUtil.chooseProcessorAndOpen(ProjectUtil.java:190)
    at com.intellij.ide.impl.ProjectUtil.openOrImport(ProjectUtil.java:169)
    at com.intellij.ide.impl.ProjectUtil.openOrImport(ProjectUtil.java:117)
    at com.intellij.ide.actions.OpenFileAction.doOpenFile(OpenFileAction.java:105)
    at com.intellij.ide.actions.OpenFileAction.lambda$actionPerformed$0(OpenFileAction.java:66)
    at com.intellij.openapi.fileChooser.ex.FileChooserDialogImpl.choose(FileChooserDialogImpl.java:144)
    at com.intellij.openapi.fileChooser.FileChooser.chooseFiles(FileChooser.java:110)
    at com.intellij.openapi.fileChooser.FileChooser.chooseFiles(FileChooser.java:88)
    at com.intellij.ide.actions.OpenFileAction.actionPerformed(OpenFileAction.java:57)
    at com.intellij.openapi.actionSystem.ex.ActionUtil.performActionDumbAware(ActionUtil.java:280)
    at com.intellij.openapi.actionSystem.impl.ActionMenuItem$ActionTransmitter.lambda$actionPerformed$0(ActionMenuItem.java:296)
    at com.intellij.openapi.wm.impl.FocusManagerImpl.runOnOwnContext(FocusManagerImpl.java:281)
    at com.intellij.openapi.wm.impl.IdeFocusManagerImpl.runOnOwnContext(IdeFocusManagerImpl.java:77)
    at com.intellij.openapi.actionSystem.impl.ActionMenuItem$ActionTransmitter.actionPerformed(ActionMenuItem.java:285)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
    at com.intellij.openapi.actionSystem.impl.ActionMenuItem.lambda$fireActionPerformed$0(ActionMenuItem.java:112)
    at com.intellij.openapi.application.TransactionGuardImpl.performUserActivity(TransactionGuardImpl.java:94)
    at com.intellij.openapi.actionSystem.impl.ActionMenuItem.fireActionPerformed(ActionMenuItem.java:112)
    at com.intellij.ui.plaf.beg.BegMenuItemUI.doClick(BegMenuItemUI.java:517)
    at com.intellij.ui.plaf.beg.BegMenuItemUI.access$300(BegMenuItemUI.java:36)
    at com.intellij.ui.plaf.beg.BegMenuItemUI$MyMouseInputHandler.mouseReleased(BegMenuItemUI.java:539)
    at java.awt.Component.processMouseEvent(Component.java:6539)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
    at java.awt.Component.processEvent(Component.java:6304)
    at java.awt.Container.processEvent(Container.java:2239)
    at java.awt.Component.dispatchEventImpl(Component.java:4889)
    at java.awt.Container.dispatchEventImpl(Container.java:2297)
    at java.awt.Component.dispatchEvent(Component.java:4711)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4904)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4535)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4476)
    at java.awt.Container.dispatchEventImpl(Container.java:2283)
    at java.awt.Window.dispatchEventImpl(Window.java:2746)
    at java.awt.Component.dispatchEvent(Component.java:4711)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:760)
    at java.awt.EventQueue.access$500(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.awt.EventQueue$3.run(EventQueue.java:703)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84)
    at java.awt.EventQueue$4.run(EventQueue.java:733)
    at java.awt.EventQueue$4.run(EventQueue.java:731)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:730)
    at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:974)
    at com.intellij.ide.IdeEventQueue.dispatchMouseEvent(IdeEventQueue.java:912)
    at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:844)
    at com.intellij.ide.IdeEventQueue.lambda$null$8(IdeEventQueue.java:449)
    at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:741)
    at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$9(IdeEventQueue.java:448)
    at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:831)
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:502)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
org.antlr.intellij.plugin.ANTLRv4PluginController@4783fb5f

java.lang.NullPointerException
    at org.antlr.intellij.plugin.ANTLRv4PluginController.projectClosed(ANTLRv4PluginController.java:160)
    at com.intellij.openapi.project.impl.ProjectManagerImpl.fireProjectClosed(ProjectManagerImpl.java:814)
    at com.intellij.openapi.project.impl.ProjectManagerImpl.lambda$closeProject$11(ProjectManagerImpl.java:694)
    at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:976)
    at com.intellij.openapi.project.impl.ProjectManagerImpl.closeProject(ProjectManagerImpl.java:687)
    at com.intellij.openapi.project.impl.ProjectManagerImpl.closeAndDispose(ProjectManagerImpl.java:718)
    at com.intellij.platform.PlatformProjectOpenProcessorKt.checkExistingProjectOnOpen(PlatformProjectOpenProcessor.kt:363)
    at com.intellij.platform.PlatformProjectOpenProcessorKt.access$checkExistingProjectOnOpen(PlatformProjectOpenProcessor.kt:1)
    at com.intellij.platform.PlatformProjectOpenProcessor$Companion.openExistingProject(PlatformProjectOpenProcessor.kt:174)
    at com.intellij.openapi.externalSystem.importing.AbstractOpenProjectProvider.openProject(AbstractOpenProjectProvider.kt:45)
    at org.jetbrains.idea.maven.wizards.MavenProjectOpenProcessor.doOpenProject(MavenProjectOpenProcessor.kt:19)
    at com.intellij.ide.actions.ImportModuleAction.openProject(ImportModuleAction.java:128)
    at com.intellij.ide.actions.ImportModuleAction.doCreateFromWizard(ImportModuleAction.java:94)
    at com.intellij.ide.actions.ImportModuleAction.createFromWizard(ImportModuleAction.java:81)
    at com.intellij.ide.actions.ImportModuleAction.doImport(ImportModuleAction.java:76)
    at com.intellij.ide.actions.ImportProjectAction.actionPerformed(ImportProjectAction.java:30)
    at com.intellij.openapi.actionSystem.ex.ActionUtil.performActionDumbAware(ActionUtil.java:280)
    at com.intellij.openapi.actionSystem.impl.ActionMenuItem$ActionTransmitter.lambda$actionPerformed$0(ActionMenuItem.java:296)
    at com.intellij.openapi.wm.impl.FocusManagerImpl.runOnOwnContext(FocusManagerImpl.java:281)
    at com.intellij.openapi.wm.impl.IdeFocusManagerImpl.runOnOwnContext(IdeFocusManagerImpl.java:77)
    at com.intellij.openapi.actionSystem.impl.ActionMenuItem$ActionTransmitter.actionPerformed(ActionMenuItem.java:285)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
    at com.intellij.openapi.actionSystem.impl.ActionMenuItem.lambda$fireActionPerformed$0(ActionMenuItem.java:112)
    at com.intellij.openapi.application.TransactionGuardImpl.performUserActivity(TransactionGuardImpl.java:94)
    at com.intellij.openapi.actionSystem.impl.ActionMenuItem.fireActionPerformed(ActionMenuItem.java:112)
    at com.intellij.ui.plaf.beg.BegMenuItemUI.doClick(BegMenuItemUI.java:517)
    at com.intellij.ui.plaf.beg.BegMenuItemUI.access$300(BegMenuItemUI.java:36)
    at com.intellij.ui.plaf.beg.BegMenuItemUI$MyMouseInputHandler.mouseReleased(BegMenuItemUI.java:539)
    at java.awt.Component.processMouseEvent(Component.java:6539)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
    at java.awt.Component.processEvent(Component.java:6304)
    at java.awt.Container.processEvent(Container.java:2239)
    at java.awt.Component.dispatchEventImpl(Component.java:4889)
    at java.awt.Container.dispatchEventImpl(Container.java:2297)
    at java.awt.Component.dispatchEvent(Component.java:4711)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4904)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4535)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4476)
    at java.awt.Container.dispatchEventImpl(Container.java:2283)
    at java.awt.Window.dispatchEventImpl(Window.java:2746)
    at java.awt.Component.dispatchEvent(Component.java:4711)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:760)
    at java.awt.EventQueue.access$500(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.awt.EventQueue$3.run(EventQueue.java:703)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84)
    at java.awt.EventQueue$4.run(EventQueue.java:733)
    at java.awt.EventQueue$4.run(EventQueue.java:731)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:730)
    at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:974)
    at com.intellij.ide.IdeEventQueue.dispatchMouseEvent(IdeEventQueue.java:912)
    at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:844)
    at com.intellij.ide.IdeEventQueue.lambda$null$8(IdeEventQueue.java:449)
    at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:741)
    at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$9(IdeEventQueue.java:448)
    at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:831)
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:502)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
bjansen commented 4 years ago

All right, it looks like it's a bad idea to initialize tool windows in a projectOpened event, #406 is another weird exception that happens during initialization. Since we don't really need the Preview window until we test a parser rule, I think I'll make it "lazy" and create the window on user action. This will also not show the window in projects that don't have any grammar files, so I guess it's a good thing.

Not sure why this is happening only in recent versions of IntelliJ though, perhaps something changed internally in the way the IDE is initialized.