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
467 stars 104 forks source link

IntelliJ: Exception in Plugin - NullPointerException #618

Closed MartinHaeusler closed 1 year ago

MartinHaeusler commented 1 year ago

The following happened to me today while using the ANTLR plugin. Sorry, I've found it at the end of a lengthy session in my IntelliJ logs, I don't know exactly how/when that happened.

IntelliJ version: 2022.3.1 (Community Edition) ANTLR Plugin version: 1.19.3-3

Stack Trace:

GenerateLexerRulesForLiteralsAction#update@EditorPopup (org.antlr.intellij.plugin.actions.GenerateLexerRulesForLiteralsAction), actionId=antlr.DefineLexerRulesForLiterals, text='Generate lexer rules for literals'

java.lang.NullPointerException: Cannot invoke "com.intellij.psi.PsiFile.findElementAt(int)" because "file" is null
    at com.intellij.refactoring.util.CommonRefactoringUtil.getElementAtCaret(CommonRefactoringUtil.java:280)
    at com.intellij.refactoring.actions.BaseRefactoringAction.getElementAtCaret(BaseRefactoringAction.java:276)
    at org.antlr.intellij.plugin.actions.GenerateLexerRulesForLiteralsAction.update(GenerateLexerRulesForLiteralsAction.java:50)
    at com.intellij.openapi.actionSystem.ex.ActionUtil.lambda$performDumbAwareUpdate$0(ActionUtil.java:153)
    at com.intellij.openapi.actionSystem.ex.ActionUtil.performDumbAwareUpdate(ActionUtil.java:176)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.doUpdate(ActionUpdater.java:720)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$updateActionReal$4(ActionUpdater.java:136)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$computeOnEdt$7(ActionUpdater.java:233)
    at com.intellij.openapi.progress.ProgressManager.lambda$runProcess$0(ProgressManager.java:68)
    at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:188)
    at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$13(CoreProgressManager.java:589)
    at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:664)
    at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:620)
    at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:588)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:60)
    at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:175)
    at com.intellij.openapi.progress.ProgressManager.runProcess(ProgressManager.java:68)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$computeOnEdt$8(ActionUpdater.java:229)
    at com.intellij.diagnostic.telemetry.TraceKt.computeWithSpan(trace.kt:123)
    at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$computeOnEdt$9(ActionUpdater.java:225)
    at io.opentelemetry.context.Context.lambda$wrapSupplier$8(Context.java:309)
    at com.intellij.openapi.actionSystem.impl.ActionUpdateEdtExecutor.lambda$computeOnEdt$0(ActionUpdateEdtExecutor.java:51)
    at com.intellij.openapi.actionSystem.impl.Utils.lambda$expandActionGroupFastTrack$5(Utils.java:323)
    at com.intellij.openapi.actionSystem.impl.Utils.runLoopAndWaitForFuture(Utils.java:828)
    at com.intellij.openapi.actionSystem.impl.Utils.expandActionGroupFastTrack(Utils.java:321)
    at com.intellij.openapi.actionSystem.impl.Utils.expandActionGroupImpl(Utils.java:240)
    at com.intellij.openapi.actionSystem.impl.Utils.lambda$fillMenu$6(Utils.java:354)
    at com.intellij.openapi.actionSystem.impl.Utils.computeWithRetries(Utils.java:858)
    at com.intellij.openapi.actionSystem.impl.Utils.fillMenu(Utils.java:353)
    at com.intellij.openapi.actionSystem.impl.ActionPopupMenuImpl$MyMenu.updateChildren(ActionPopupMenuImpl.java:177)
    at com.intellij.openapi.actionSystem.impl.ActionPopupMenuImpl$MyMenu.show(ActionPopupMenuImpl.java:129)
    at com.intellij.openapi.editor.impl.ContextMenuPopupHandler.handlePopup(ContextMenuPopupHandler.java:36)
    at com.intellij.openapi.editor.impl.EditorImpl.invokePopupIfNeeded(EditorImpl.java:5029)
    at com.intellij.openapi.editor.impl.EditorImpl$MyMouseAdapter.runMouseReleasedCommand(EditorImpl.java:3996)
    at com.intellij.openapi.editor.impl.EditorImpl$MyMouseAdapter.mouseReleased(EditorImpl.java:3887)
    at java.desktop/java.awt.Component.processMouseEvent(Component.java:6648)
    at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3392)
    at java.desktop/java.awt.Component.processEvent(Component.java:6413)
    at java.desktop/java.awt.Container.processEvent(Container.java:2266)
    at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5022)
    at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324)
    at java.desktop/java.awt.Component.dispatchEvent(Component.java:4854)
    at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4948)
    at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4575)
    at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4516)
    at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2310)
    at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2802)
    at java.desktop/java.awt.Component.dispatchEvent(Component.java:4854)
    at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:781)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:730)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:724)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97)
    at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:754)
    at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:752)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
    at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:751)
    at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:909)
    at com.intellij.ide.IdeEventQueue.dispatchMouseEvent(IdeEventQueue.java:831)
    at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:753)
    at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$5(IdeEventQueue.java:437)
    at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:772)
    at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$6(IdeEventQueue.java:436)
    at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:113)
    at com.intellij.ide.IdeEventQueue.performActivity(IdeEventQueue.java:615)
    at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$7(IdeEventQueue.java:434)
    at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:813)
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:480)
    at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:207)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
    at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:92)
raffian commented 1 year ago

Same error here.

ANTLR plugin 1.19.3-3
IntelliJ CE 2022.3.3
openJDK 11.0.18
Windows 11/x64 
1103557w commented 1 year ago

Getting similar

java.lang.NullPointerException: Cannot invoke "com.intellij.openapi.vfs.VirtualFile.getPath()" because "grammarFile" is null
    at org.antlr.intellij.plugin.preview.InputPanel.createPreviewEditor(InputPanel.java:211)
    at org.antlr.intellij.plugin.preview.InputPanel.selectFileEvent(InputPanel.java:202)
    at org.antlr.intellij.plugin.preview.InputPanel.onFileChosen(InputPanel.java:138)
    at org.antlr.intellij.plugin.preview.InputPanel$1.onFileChosen(InputPanel.java:113)
    at com.intellij.openapi.fileChooser.FileChooser.lambda$chooseFile$0(FileChooser.java:137)
    at com.intellij.openapi.fileChooser.ex.FileChooserDialogImpl.choose(FileChooserDialogImpl.java:137)
    at com.intellij.openapi.fileChooser.FileChooser.chooseFiles(FileChooser.java:102)
    at com.intellij.openapi.fileChooser.FileChooser.chooseFile(FileChooser.java:137)
    at com.intellij.openapi.ui.BrowseFolderRunnable.run(BrowseFolderRunnable.java:76)
    at com.intellij.openapi.ui.ComponentWithBrowseButton$BrowseFolderActionListener.actionPerformed(ComponentWithBrowseButton.java:281)
    at com.intellij.openapi.ui.ComponentWithBrowseButton.notifyActionListeners(ComponentWithBrowseButton.java:117)
    at com.intellij.ide.ui.laf.darcula.ui.TextFieldWithPopupHandlerUI.handleMouse(TextFieldWithPopupHandlerUI.java:506)
    at com.intellij.ide.ui.laf.darcula.ui.TextFieldWithPopupHandlerUI$Handler.mouseClicked(TextFieldWithPopupHandlerUI.java:345)
    at java.desktop/java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:278)
    at java.desktop/java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:277)
    at java.desktop/java.awt.Component.processMouseEvent(Component.java:6651)
    at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3392)
    at java.desktop/java.awt.Component.processEvent(Component.java:6413)
    at java.desktop/java.awt.Container.processEvent(Container.java:2266)
    at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5022)
    at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324)
    at java.desktop/java.awt.Component.dispatchEvent(Component.java:4854)
    at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4948)
    at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4584)
    at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4516)
    at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2310)
    at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2802)
    at java.desktop/java.awt.Component.dispatchEvent(Component.java:4854)
    at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:781)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:730)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:724)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97)
    at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:754)
    at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:752)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
    at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:751)
    at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:909)
    at com.intellij.ide.IdeEventQueue.dispatchMouseEvent(IdeEventQueue.java:831)
    at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:753)
    at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$5(IdeEventQueue.java:437)
    at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:787)
    at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$6(IdeEventQueue.java:436)
    at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:113)
    at com.intellij.ide.IdeEventQueue.performActivity(IdeEventQueue.java:615)
    at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$7(IdeEventQueue.java:434)
    at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:838)
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:480)
    at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:207)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
    at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:92)

OpenSuse tumbleweed.

Only happens on some input files (with the same grammar) and happens after re-install

raffian commented 1 year ago

I switched to using ANTLR4IDE plugin for eclipse. It has its own issues and is far from perfect, but at least it works. https://github.com/antlr4ide/antlr4ide

1103557w commented 1 year ago

Getting similar

java.lang.NullPointerException: Cannot invoke "com.intellij.openapi.vfs.VirtualFile.getPath()" because "grammarFile" is null
  at org.antlr.intellij.plugin.preview.InputPanel.createPreviewEditor(InputPanel.java:211)
  at org.antlr.intellij.plugin.preview.InputPanel.selectFileEvent(InputPanel.java:202)
  at org.antlr.intellij.plugin.preview.InputPanel.onFileChosen(InputPanel.java:138)
  at org.antlr.intellij.plugin.preview.InputPanel$1.onFileChosen(InputPanel.java:113)
  at com.intellij.openapi.fileChooser.FileChooser.lambda$chooseFile$0(FileChooser.java:137)
  at com.intellij.openapi.fileChooser.ex.FileChooserDialogImpl.choose(FileChooserDialogImpl.java:137)
  at com.intellij.openapi.fileChooser.FileChooser.chooseFiles(FileChooser.java:102)
  at com.intellij.openapi.fileChooser.FileChooser.chooseFile(FileChooser.java:137)
  at com.intellij.openapi.ui.BrowseFolderRunnable.run(BrowseFolderRunnable.java:76)
  at com.intellij.openapi.ui.ComponentWithBrowseButton$BrowseFolderActionListener.actionPerformed(ComponentWithBrowseButton.java:281)
  at com.intellij.openapi.ui.ComponentWithBrowseButton.notifyActionListeners(ComponentWithBrowseButton.java:117)
  at com.intellij.ide.ui.laf.darcula.ui.TextFieldWithPopupHandlerUI.handleMouse(TextFieldWithPopupHandlerUI.java:506)
  at com.intellij.ide.ui.laf.darcula.ui.TextFieldWithPopupHandlerUI$Handler.mouseClicked(TextFieldWithPopupHandlerUI.java:345)
  at java.desktop/java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:278)
  at java.desktop/java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:277)
  at java.desktop/java.awt.Component.processMouseEvent(Component.java:6651)
  at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3392)
  at java.desktop/java.awt.Component.processEvent(Component.java:6413)
  at java.desktop/java.awt.Container.processEvent(Container.java:2266)
  at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5022)
  at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324)
  at java.desktop/java.awt.Component.dispatchEvent(Component.java:4854)
  at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4948)
  at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4584)
  at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4516)
  at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2310)
  at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2802)
  at java.desktop/java.awt.Component.dispatchEvent(Component.java:4854)
  at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:781)
  at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:730)
  at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:724)
  at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
  at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
  at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97)
  at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:754)
  at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:752)
  at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
  at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
  at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:751)
  at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:909)
  at com.intellij.ide.IdeEventQueue.dispatchMouseEvent(IdeEventQueue.java:831)
  at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:753)
  at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$5(IdeEventQueue.java:437)
  at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:787)
  at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$6(IdeEventQueue.java:436)
  at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:113)
  at com.intellij.ide.IdeEventQueue.performActivity(IdeEventQueue.java:615)
  at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$7(IdeEventQueue.java:434)
  at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:838)
  at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:480)
  at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:207)
  at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
  at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
  at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
  at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
  at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:92)

OpenSuse tumbleweed.

Only happens on some input files (with the same grammar) and happens after re-install

edited comment: Happening on linux mint too. Had done fresh reinstall and update of intellij