KronicDeth / intellij-elixir

Elixir plugin for JetBrain's IntelliJ Platform (including Rubymine)
Other
1.84k stars 153 forks source link

org.elixir_lang.sdk.erlang_dependent.Type.isRootTypeApplicable does not use protected access to JavadocOrderRootType.getInstance() #976

Open kozlice opened 6 years ago

kozlice commented 6 years ago

After an update I was able to configure Internal Erlang SDK, but not Elixir SDK: an error occurs.

Elixir plugin v7.2.0 PhpStorm 2017.3.1 Build #PS-173.3942.32, built on December 12, 2017 JRE: 1.8.0_152-release-1024-b8 x86_64 JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o Mac OS X 10.13.2

Elixir v1.5.3 and Erlang v20.2.2, both installed via Homebrew.

Stacktrace:

Root type class com.intellij.openapi.roots.JavadocOrderRootType not found. All roots: [Root LIBRARY_FILE]
java.lang.AssertionError: Root type class com.intellij.openapi.roots.JavadocOrderRootType not found. All roots: [Root LIBRARY_FILE]
    at com.intellij.openapi.roots.OrderRootType.getOrderRootType(OrderRootType.java:126)
    at com.intellij.openapi.roots.JavadocOrderRootType.getInstance(JavadocOrderRootType.java:35)
    at org.elixir_lang.sdk.erlang.Type.isRootTypeApplicable(Type.java:148)
    at org.elixir_lang.sdk.elixir.Type.codePathsFromInternalErlangSdk(Type.java:231)
    at org.elixir_lang.sdk.elixir.Type.addNewCodePathsFromInternErlangSdk(Type.java:196)
    at org.elixir_lang.sdk.elixir.Type.configureInternalErlangSdk(Type.java:187)
    at org.elixir_lang.sdk.elixir.Type.configureSdkPaths(Type.java:173)
    at org.elixir_lang.sdk.elixir.Type.setupSdkPaths(Type.java:608)
    at com.intellij.openapi.projectRoots.SdkType.setupSdkPaths(SdkType.java:102)
    at com.intellij.openapi.roots.ui.configuration.projectRoot.ProjectSdksModel.a(ProjectSdksModel.java:290)
    at com.intellij.openapi.roots.ui.configuration.projectRoot.ProjectSdksModel.a(ProjectSdksModel.java:273)
    at com.intellij.openapi.projectRoots.impl.DependentSdkType.a(DependentSdkType.java:87)
    at com.intellij.openapi.projectRoots.impl.SdkConfigurationUtil.a(SdkConfigurationUtil.java:297)
    at com.intellij.ui.mac.MacPathChooserDialog.choose(MacPathChooserDialog.java:174)
    at com.intellij.openapi.fileChooser.FileChooser.chooseFiles(FileChooser.java:114)
    at com.intellij.openapi.fileChooser.FileChooser.chooseFiles(FileChooser.java:91)
    at com.intellij.openapi.projectRoots.impl.SdkConfigurationUtil.selectSdkHome(SdkConfigurationUtil.java:294)
    at com.intellij.openapi.projectRoots.impl.DependentSdkType.createSdkOfType(DependentSdkType.java:82)
    at com.intellij.openapi.projectRoots.impl.DependentSdkType.showCustomCreateUI(DependentSdkType.java:69)
    at com.intellij.openapi.projectRoots.SdkType.showCustomCreateUI(SdkType.java:258)
    at com.intellij.openapi.roots.ui.configuration.projectRoot.ProjectSdksModel.doAdd(ProjectSdksModel.java:273)
    at com.intellij.openapi.roots.ui.configuration.projectRoot.ProjectSdksModel.doAdd(ProjectSdksModel.java:267)
    at org.elixir_lang.facet.sdks.Configurable.addSdk(Configurable.kt:121)
    at org.elixir_lang.facet.sdks.Configurable.access$addSdk(Configurable.kt:22)
    at org.elixir_lang.facet.sdks.Configurable$createComponent$decorator$1.run(Configurable.kt:55)
    at org.elixir_lang.facet.sdks.Configurable$createComponent$decorator$1.run(Configurable.kt:54)
    at com.intellij.ui.ToolbarDecorator$2.doAdd(ToolbarDecorator.java:440)
    at com.intellij.ui.CommonActionsPanel$Buttons.performAction(CommonActionsPanel.java:72)
    at com.intellij.ui.CommonActionsPanel$MyActionButton.actionPerformed(CommonActionsPanel.java:263)
    at com.intellij.openapi.actionSystem.ex.ActionUtil$1.run(ActionUtil.java:220)
    at com.intellij.openapi.actionSystem.ex.ActionUtil.performActionDumbAware(ActionUtil.java:237)
    at com.intellij.openapi.actionSystem.impl.ActionButton.a(ActionButton.java:193)
    at com.intellij.openapi.actionSystem.impl.ActionButton.a(ActionButton.java:151)
    at com.intellij.openapi.actionSystem.impl.ActionButton.processMouseEvent(ActionButton.java:344)
    at java.awt.Component.processEvent(Component.java:6306)
    at java.awt.Container.processEvent(Container.java:2237)
    at java.awt.Component.dispatchEventImpl(Component.java:4897)
    at java.awt.Container.dispatchEventImpl(Container.java:2295)
    at java.awt.Component.dispatchEvent(Component.java:4719)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4889)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4526)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4467)
    at java.awt.Container.dispatchEventImpl(Container.java:2281)
    at java.awt.Window.dispatchEventImpl(Window.java:2746)
    at java.awt.Component.dispatchEvent(Component.java:4719)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:764)
    at java.awt.EventQueue.access$500(EventQueue.java:98)
    at java.awt.EventQueue$3.run(EventQueue.java:715)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90)
    at java.awt.EventQueue$4.run(EventQueue.java:737)
    at java.awt.EventQueue$4.run(EventQueue.java:735)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:734)
    at com.intellij.ide.IdeEventQueue.d(IdeEventQueue.java:822)
    at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:646)
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:366)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:109)
    at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:190)
    at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:235)
    at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:233)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:233)
    at java.awt.Dialog.show(Dialog.java:1084)
    at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl$MyDialog.show(DialogWrapperPeerImpl.java:734)
    at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl.show(DialogWrapperPeerImpl.java:456)
    at com.intellij.openapi.ui.DialogWrapper.invokeShow(DialogWrapper.java:1696)
    at com.intellij.openapi.ui.DialogWrapper.show(DialogWrapper.java:1645)
    at com.intellij.openapi.options.newEditor.SettingsDialog.a(SettingsDialog.java:83)
    at com.intellij.openapi.application.TransactionGuardImpl.a(TransactionGuardImpl.java:88)
    at com.intellij.openapi.application.TransactionGuardImpl.submitTransactionAndWait(TransactionGuardImpl.java:153)
    at com.intellij.openapi.options.newEditor.SettingsDialog.show(SettingsDialog.java:83)
    at com.intellij.ide.actions.ShowSettingsUtilImpl.showSettingsDialog(ShowSettingsUtilImpl.java:154)
    at org.elixir_lang.inspection.SetupSDKNotificationProvider$Companion.showSmallIDEFacetSettings(SetupSDKNotificationProvider.kt:90)
    at org.elixir_lang.inspection.SetupSDKNotificationProvider$Companion$createSmallIDEFacetPanel$$inlined$apply$lambda$1.run(SetupSDKNotificationProvider.kt:97)
    at com.intellij.ui.EditorNotificationPanel$1.hyperlinkActivated(EditorNotificationPanel.java:126)
    at com.intellij.ui.HyperlinkAdapter.hyperlinkUpdate(HyperlinkAdapter.java:28)
    at com.intellij.ui.HyperlinkLabel.fireHyperlinkEvent(HyperlinkLabel.java:212)
    at com.intellij.ui.HyperlinkLabel.processMouseEvent(HyperlinkLabel.java:136)
    at java.awt.Component.processEvent(Component.java:6306)
    at java.awt.Container.processEvent(Container.java:2237)
    at java.awt.Component.dispatchEventImpl(Component.java:4897)
    at java.awt.Container.dispatchEventImpl(Container.java:2295)
    at java.awt.Component.dispatchEvent(Component.java:4719)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4889)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4523)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4467)
    at java.awt.Container.dispatchEventImpl(Container.java:2281)
    at java.awt.Window.dispatchEventImpl(Window.java:2746)
    at java.awt.Component.dispatchEvent(Component.java:4719)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:764)
    at java.awt.EventQueue.access$500(EventQueue.java:98)
    at java.awt.EventQueue$3.run(EventQueue.java:715)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90)
    at java.awt.EventQueue$4.run(EventQueue.java:737)
    at java.awt.EventQueue$4.run(EventQueue.java:735)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:734)
    at com.intellij.ide.IdeEventQueue.d(IdeEventQueue.java:822)
    at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:646)
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:366)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    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)
KronicDeth commented 6 years ago

I'm not able to reproduce the problem locally. When I run an install of just PHPStorm and the plugin, only CLASSES and SOURCES root types are available, so the 3rd condition never gets called.

https://github.com/KronicDeth/intellij-elixir/blob/3f387be5289f2cc25f46928c9753edc3216e9c97/src/org/elixir_lang/sdk/erlang/Type.java#L144-L149

I'm assuming that you have other plugins installed that must introduce a 3rd root type and since it doesn't match CLASSES or SOURCES, it is tested against JavadocOrderRootType.getInstance(), which is what causes the error.

I can fix it the same at in the Elixir SDK: calculate the documentation root type indirectly and don't use JavadocOrderRootType.getInstance() in Small IDEs like PHPStorm.

kozlice commented 6 years ago

@KronicDeth Thanks for looking into this. I have a bunch of other plugins indeed. I've updated to 7.2.1, and SDK can now be added to list & chosen for a project. An error still occurs, though (trace looks almost the same as in first comment):

Root type class com.intellij.openapi.roots.JavadocOrderRootType not found. All roots: [Root LIBRARY_FILE]
java.lang.AssertionError: Root type class com.intellij.openapi.roots.JavadocOrderRootType not found. All roots: [Root LIBRARY_FILE]
    at com.intellij.openapi.roots.OrderRootType.getOrderRootType(OrderRootType.java:126)
    at com.intellij.openapi.roots.JavadocOrderRootType.getInstance(JavadocOrderRootType.java:35)
    at org.elixir_lang.sdk.erlang_dependent.Type.isRootTypeApplicable(Type.java:70)
    at org.elixir_lang.facet.sdk.Editor.showTabForType(Editor.kt:112)
    at org.elixir_lang.facet.sdk.Editor.createMainPanel(Editor.kt:83)
    at org.elixir_lang.facet.sdk.Editor.<init>(Editor.kt:64)
    at org.elixir_lang.facet.sdks.Configurable$updateSdkPanel$$inlined$let$lambda$1.apply(Configurable.kt:145)
    at org.elixir_lang.facet.sdks.Configurable$updateSdkPanel$$inlined$let$lambda$1.apply(Configurable.kt:22)
    at java.util.HashMap.computeIfAbsent(HashMap.java:1126)
    at org.elixir_lang.facet.sdks.Configurable.updateSdkPanel(Configurable.kt:145)
    at org.elixir_lang.facet.sdks.Configurable.access$updateSdkPanel(Configurable.kt:22)
    at org.elixir_lang.facet.sdks.Configurable$addListeners$1.valueChanged(Configurable.kt:115)
    at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:184)
    at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:164)
    at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:211)
    at javax.swing.DefaultListSelectionModel.changeSelection(DefaultListSelectionModel.java:405)
    at javax.swing.DefaultListSelectionModel.changeSelection(DefaultListSelectionModel.java:415)
    at javax.swing.DefaultListSelectionModel.setSelectionInterval(DefaultListSelectionModel.java:459)
    at javax.swing.JList.setSelectedIndex(JList.java:2210)
    at javax.swing.JList.setSelectedValue(JList.java:2360)
    at org.elixir_lang.facet.sdks.Configurable.addCreatedSdk(Configurable.kt:94)
    at org.elixir_lang.facet.sdks.Configurable.access$addCreatedSdk(Configurable.kt:22)
    at org.elixir_lang.facet.sdks.Configurable$addSdk$1.consume(Configurable.kt:121)
    at org.elixir_lang.facet.sdks.Configurable$addSdk$1.consume(Configurable.kt:22)
    at com.intellij.openapi.roots.ui.configuration.projectRoot.ProjectSdksModel.doAdd(ProjectSdksModel.java:311)
    at com.intellij.openapi.roots.ui.configuration.projectRoot.ProjectSdksModel.a(ProjectSdksModel.java:297)
    at com.intellij.openapi.roots.ui.configuration.projectRoot.ProjectSdksModel.a(ProjectSdksModel.java:273)
    at com.intellij.openapi.projectRoots.impl.DependentSdkType.a(DependentSdkType.java:87)
    at com.intellij.openapi.projectRoots.impl.SdkConfigurationUtil.a(SdkConfigurationUtil.java:297)
    at com.intellij.ui.mac.MacPathChooserDialog.choose(MacPathChooserDialog.java:174)
    at com.intellij.openapi.fileChooser.FileChooser.chooseFiles(FileChooser.java:114)
    at com.intellij.openapi.fileChooser.FileChooser.chooseFiles(FileChooser.java:91)
    at com.intellij.openapi.projectRoots.impl.SdkConfigurationUtil.selectSdkHome(SdkConfigurationUtil.java:294)
    at com.intellij.openapi.projectRoots.impl.DependentSdkType.createSdkOfType(DependentSdkType.java:82)
    at com.intellij.openapi.projectRoots.impl.DependentSdkType.showCustomCreateUI(DependentSdkType.java:69)
    at com.intellij.openapi.projectRoots.SdkType.showCustomCreateUI(SdkType.java:258)
    at com.intellij.openapi.roots.ui.configuration.projectRoot.ProjectSdksModel.doAdd(ProjectSdksModel.java:273)
    at com.intellij.openapi.roots.ui.configuration.projectRoot.ProjectSdksModel.doAdd(ProjectSdksModel.java:267)
    at org.elixir_lang.facet.sdks.Configurable.addSdk(Configurable.kt:121)
    at org.elixir_lang.facet.sdks.Configurable.access$addSdk(Configurable.kt:22)
    at org.elixir_lang.facet.sdks.Configurable$createComponent$decorator$1.run(Configurable.kt:55)
    at org.elixir_lang.facet.sdks.Configurable$createComponent$decorator$1.run(Configurable.kt:54)
    at com.intellij.ui.ToolbarDecorator$2.doAdd(ToolbarDecorator.java:440)
    at com.intellij.ui.CommonActionsPanel$Buttons.performAction(CommonActionsPanel.java:72)
    at com.intellij.ui.CommonActionsPanel$MyActionButton.actionPerformed(CommonActionsPanel.java:263)
    at com.intellij.openapi.actionSystem.ex.ActionUtil$1.run(ActionUtil.java:220)
    at com.intellij.openapi.actionSystem.ex.ActionUtil.performActionDumbAware(ActionUtil.java:237)
    at com.intellij.openapi.actionSystem.impl.ActionButton.a(ActionButton.java:193)
    at com.intellij.openapi.actionSystem.impl.ActionButton.a(ActionButton.java:151)
    at com.intellij.openapi.actionSystem.impl.ActionButton.processMouseEvent(ActionButton.java:344)
    at java.awt.Component.processEvent(Component.java:6306)
    at java.awt.Container.processEvent(Container.java:2237)
    at java.awt.Component.dispatchEventImpl(Component.java:4897)
    at java.awt.Container.dispatchEventImpl(Container.java:2295)
    at java.awt.Component.dispatchEvent(Component.java:4719)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4889)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4526)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4467)
    at java.awt.Container.dispatchEventImpl(Container.java:2281)
    at java.awt.Window.dispatchEventImpl(Window.java:2746)
    at java.awt.Component.dispatchEvent(Component.java:4719)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:764)
    at java.awt.EventQueue.access$500(EventQueue.java:98)
    at java.awt.EventQueue$3.run(EventQueue.java:715)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90)
    at java.awt.EventQueue$4.run(EventQueue.java:737)
    at java.awt.EventQueue$4.run(EventQueue.java:735)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:734)
    at com.intellij.ide.IdeEventQueue.d(IdeEventQueue.java:822)
    at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:646)
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:366)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:109)
    at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:190)
    at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:235)
    at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:233)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:233)
    at java.awt.Dialog.show(Dialog.java:1084)
    at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl$MyDialog.show(DialogWrapperPeerImpl.java:734)
    at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl.show(DialogWrapperPeerImpl.java:456)
    at com.intellij.openapi.ui.DialogWrapper.invokeShow(DialogWrapper.java:1696)
    at com.intellij.openapi.ui.DialogWrapper.show(DialogWrapper.java:1645)
    at com.intellij.openapi.options.newEditor.SettingsDialog.a(SettingsDialog.java:83)
    at com.intellij.openapi.application.TransactionGuardImpl.a(TransactionGuardImpl.java:88)
    at com.intellij.openapi.application.TransactionGuardImpl.submitTransactionAndWait(TransactionGuardImpl.java:153)
    at com.intellij.openapi.options.newEditor.SettingsDialog.show(SettingsDialog.java:83)
    at com.intellij.ide.actions.ShowSettingsUtilImpl.showSettingsDialog(ShowSettingsUtilImpl.java:97)
    at com.intellij.ide.actions.ShowSettingsAction.perform(ShowSettingsAction.java:63)
    at com.intellij.ide.MacOSApplicationProvider$Worker.a(MacOSApplicationProvider.java:118)
    at com.intellij.ide.MacOSApplicationProvider$Worker.b(MacOSApplicationProvider.java:212)
    at com.intellij.openapi.application.TransactionGuardImpl.a(TransactionGuardImpl.java:88)
    at com.intellij.openapi.application.TransactionGuardImpl.b(TransactionGuardImpl.java:74)
    at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.a(LaterInvocator.java:424)
    at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.run(LaterInvocator.java:407)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:762)
    at java.awt.EventQueue.access$500(EventQueue.java:98)
    at java.awt.EventQueue$3.run(EventQueue.java:715)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:732)
    at com.intellij.ide.IdeEventQueue.d(IdeEventQueue.java:822)
    at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:650)
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:366)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    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)

And then, autosuggestion fails (e.g. type System. and wait a little):

Argument for @NotNull parameter 'maxScope' of org/elixir_lang/psi/impl/ElixirPsiImplUtil.maybeModularNameToModular must not be null
java.lang.IllegalArgumentException: Argument for @NotNull parameter 'maxScope' of org/elixir_lang/psi/impl/ElixirPsiImplUtil.maybeModularNameToModular must not be null
    at org.elixir_lang.psi.impl.ElixirPsiImplUtil.$$$reportNull$$$0(ElixirPsiImplUtil.java)
    at org.elixir_lang.psi.impl.ElixirPsiImplUtil.maybeModularNameToModular(ElixirPsiImplUtil.java)
    at org.elixir_lang.code_insight.completion.provider.CallDefinitionClause.addCompletions(CallDefinitionClause.java:106)
    at com.intellij.codeInsight.completion.CompletionProvider.addCompletionVariants(CompletionProvider.java:36)
    at com.intellij.codeInsight.completion.CompletionContributor.fillCompletionVariants(CompletionContributor.java:152)
    at com.intellij.codeInsight.completion.CompletionService.getVariantsFromContributors(CompletionService.java:83)
    at com.intellij.codeInsight.completion.CompletionResultSet.runRemainingContributors(CompletionResultSet.java:149)
    at com.intellij.codeInsight.completion.CompletionResultSet.runRemainingContributors(CompletionResultSet.java:142)
    at com.intellij.codeInsight.template.impl.LiveTemplateCompletionContributor$2.addCompletions(LiveTemplateCompletionContributor.java:90)
    at com.intellij.codeInsight.completion.CompletionProvider.addCompletionVariants(CompletionProvider.java:36)
    at com.intellij.codeInsight.completion.CompletionContributor.fillCompletionVariants(CompletionContributor.java:152)
    at com.intellij.codeInsight.completion.CompletionService.getVariantsFromContributors(CompletionService.java:83)
    at com.intellij.codeInsight.completion.CompletionService.performCompletion(CompletionService.java:112)
    at com.intellij.codeInsight.completion.CompletionProgressIndicator.a(CompletionProgressIndicator.java:839)
    at com.intellij.codeInsight.completion.CompletionProgressIndicator.access$600(CompletionProgressIndicator.java:92)
    at com.intellij.codeInsight.completion.CompletionProgressIndicator$1CalculateItems.run(CompletionProgressIndicator.java:821)
    at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1127)
    at com.intellij.codeInsight.completion.AsyncCompletion.tryReadOrCancel(CompletionThreading.java:181)
    at com.intellij.codeInsight.completion.CompletionProgressIndicator.b(CompletionProgressIndicator.java:832)
    at com.intellij.codeInsight.completion.AsyncCompletion.a(CompletionThreading.java:108)
    at com.intellij.openapi.progress.impl.CoreProgressManager.a(CoreProgressManager.java:157)
    at com.intellij.openapi.progress.impl.CoreProgressManager.a(CoreProgressManager.java:543)
    at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:488)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:94)
    at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:144)
    at com.intellij.codeInsight.completion.AsyncCompletion.a(CompletionThreading.java:104)
    at com.intellij.openapi.application.impl.ApplicationImpl$1.run(ApplicationImpl.java:315)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)