basgren / railways

A plugin for RubyMine and IntelliJ IDEA Ultimate that adds a panel with routes of Ruby on Rails application.
MIT License
46 stars 18 forks source link

RM 2020.3 EAP PsiInvalidElementAccessException error #45

Closed thestelz closed 3 years ago

thestelz commented 3 years ago

With the latest RM EAP, I will get the follow error. I'm not sure what is cuasing it or how to replicate it as I notice it after a short period of time.

com.intellij.psi.PsiInvalidElementAccessException: Element class com.intellij.psi.impl.source.tree.CompositeElement of type Ruby:Call (class org.jetbrains.plugins.ruby.ruby.lang.psi.stubs.types.RCallStubElementType)
    at com.intellij.psi.PsiInvalidElementAccessException.createByNode(PsiInvalidElementAccessException.java:80)
    at com.intellij.psi.impl.source.SubstrateRef$2.getContainingFile(SubstrateRef.java:101)
    at com.intellij.extapi.psi.StubBasedPsiElementBase.getContainingFile(StubBasedPsiElementBase.java:239)
    at com.intellij.extapi.psi.StubBasedPsiElementBase.isPhysical(StubBasedPsiElementBase.java:282)
    at com.intellij.psi.util.CachedValuesManager$1.compute(CachedValuesManager.java:154)
    at com.intellij.psi.impl.PsiCachedValueImpl.doCompute(PsiCachedValueImpl.java:54)
    at com.intellij.util.CachedValueBase.lambda$getValueWithLock$1(CachedValueBase.java:235)
    at com.intellij.openapi.util.RecursionManager$1.computePreventingRecursion(RecursionManager.java:111)
    at com.intellij.openapi.util.RecursionGuard.doPreventingRecursion(RecursionGuard.java:42)
    at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:68)
    at com.intellij.util.CachedValueBase.getValueWithLock(CachedValueBase.java:236)
    at com.intellij.psi.impl.PsiCachedValueImpl.getValue(PsiCachedValueImpl.java:43)
    at com.intellij.util.CachedValuesManagerImpl.getCachedValue(CachedValuesManagerImpl.java:78)
    at com.intellij.psi.util.CachedValuesManager.getCachedValue(CachedValuesManager.java:150)
    at com.intellij.psi.util.CachedValuesManager.getCachedValue(CachedValuesManager.java:120)
    at org.jetbrains.plugins.ruby.ruby.lang.psi.impl.RPossibleCallElementBase.getCallType(RPossibleCallElementBase.java:31)
    at org.jetbrains.plugins.ruby.ruby.lang.psi.impl.controlStructures.methods.RMethodImpl$1.visitRCall(RMethodImpl.java:177)
    at org.jetbrains.plugins.ruby.ruby.lang.psi.impl.methodCall.RCallImpl.accept(RCallImpl.java:57)
    at com.intellij.psi.impl.PsiElementBase.acceptChildren(PsiElementBase.java:69)
    at org.jetbrains.plugins.ruby.ruby.lang.psi.visitors.RubyRecursiveElementVisitor.visitElement(RubyRecursiveElementVisitor.java:31)
    at org.jetbrains.plugins.ruby.ruby.lang.psi.visitors.RubyElementVisitor.visitRCompoundStatement(RubyElementVisitor.java:125)
    at org.jetbrains.plugins.ruby.ruby.lang.psi.impl.controlStructures.blocks.RCompoundStatementImpl.accept(RCompoundStatementImpl.java:46)
    at com.intellij.psi.impl.source.tree.LazyParseablePsiElement.acceptChildren(LazyParseablePsiElement.java:104)
    at org.jetbrains.plugins.ruby.ruby.lang.psi.visitors.RubyRecursiveElementVisitor.visitElement(RubyRecursiveElementVisitor.java:31)
    at org.jetbrains.plugins.ruby.ruby.lang.psi.visitors.RubyElementVisitor.visitRBodyStatement(RubyElementVisitor.java:121)
    at org.jetbrains.plugins.ruby.ruby.lang.psi.impl.controlStructures.blocks.RBodyStatementImpl.accept(RBodyStatementImpl.java:54)
    at com.intellij.psi.impl.PsiElementBase.acceptChildren(PsiElementBase.java:69)
    at org.jetbrains.plugins.ruby.ruby.lang.psi.impl.controlStructures.methods.RMethodImpl.computeVisibilities(RMethodImpl.java:208)
    at org.jetbrains.plugins.ruby.ruby.lang.psi.impl.controlStructures.methods.RMethodImpl.lambda$getVisibility$1(RMethodImpl.java:133)
    at com.intellij.psi.util.CachedValuesManager$1.compute(CachedValuesManager.java:153)
    at com.intellij.psi.impl.PsiCachedValueImpl.doCompute(PsiCachedValueImpl.java:54)
    at com.intellij.util.CachedValueBase.lambda$getValueWithLock$1(CachedValueBase.java:235)
    at com.intellij.openapi.util.RecursionManager$1.computePreventingRecursion(RecursionManager.java:111)
    at com.intellij.openapi.util.RecursionGuard.doPreventingRecursion(RecursionGuard.java:42)
    at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:68)
    at com.intellij.util.CachedValueBase.getValueWithLock(CachedValueBase.java:236)
    at com.intellij.psi.impl.PsiCachedValueImpl.getValue(PsiCachedValueImpl.java:43)
    at com.intellij.util.CachedValuesManagerImpl.getCachedValue(CachedValuesManagerImpl.java:78)
    at com.intellij.psi.util.CachedValuesManager.getCachedValue(CachedValuesManager.java:150)
    at com.intellij.psi.util.CachedValuesManager.getCachedValue(CachedValuesManager.java:120)
    at org.jetbrains.plugins.ruby.ruby.lang.psi.impl.controlStructures.methods.RMethodImpl.getVisibility(RMethodImpl.java:133)
    at net.bitpot.railways.models.RailsActionInfo.getMethodVisibility(Unknown Source)
    at net.bitpot.railways.models.RailsActionInfo.getIcon(Unknown Source)
    at net.bitpot.railways.models.routes.SimpleRoute.getActionIcon(Unknown Source)
    at net.bitpot.railways.gui.RouteCellRenderer.renderRouteAction(Unknown Source)
    at net.bitpot.railways.gui.RouteCellRenderer.customizeCellRenderer(Unknown Source)
    at com.intellij.ui.ColoredTableCellRenderer.rendererComponentInner(ColoredTableCellRenderer.java:58)
    at com.intellij.ui.ColoredTableCellRenderer.getTableCellRendererComponent(ColoredTableCellRenderer.java:41)
    at java.desktop/javax.swing.JTable.prepareRenderer(JTable.java:5741)
    at com.intellij.ui.table.JBTable.prepareRenderer(JBTable.java:680)
    at java.desktop/javax.swing.plaf.basic.BasicTableUI.paintCell(BasicTableUI.java:2185)
    at java.desktop/javax.swing.plaf.basic.BasicTableUI.paintCells(BasicTableUI.java:2087)
    at java.desktop/javax.swing.plaf.basic.BasicTableUI.paint(BasicTableUI.java:1883)
    at java.desktop/javax.swing.plaf.ComponentUI.update(ComponentUI.java:161)
    at java.desktop/javax.swing.JComponent.paintComponent(JComponent.java:800)
    at com.intellij.ui.table.JBTable.paintComponent(JBTable.java:391)
    at java.desktop/javax.swing.JComponent.paint(JComponent.java:1077)
    at com.intellij.ui.table.JBTable.paint(JBTable.java:521)
    at java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:910)
    at java.desktop/javax.swing.JComponent.paint(JComponent.java:1086)
    at java.desktop/javax.swing.JViewport.paint(JViewport.java:737)
    at com.intellij.ui.components.JBViewport.paint(JBViewport.java:241)
    at java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:910)
    at java.desktop/javax.swing.JComponent.paint(JComponent.java:1086)
    at java.desktop/javax.swing.JComponent.paintToOffscreen(JComponent.java:5263)
    at java.desktop/javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:246)
    at java.desktop/javax.swing.RepaintManager.paint(RepaintManager.java:1333)
    at java.desktop/javax.swing.JComponent._paintImmediately(JComponent.java:5211)
    at java.desktop/javax.swing.JComponent.paintImmediately(JComponent.java:5021)
    at java.desktop/javax.swing.RepaintManager$4.run(RepaintManager.java:868)
    at java.desktop/javax.swing.RepaintManager$4.run(RepaintManager.java:851)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
    at java.desktop/javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:851)
    at java.desktop/javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:826)
    at java.desktop/javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:775)
    at java.desktop/javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1901)
    at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
    at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:776)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
    at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:746)
    at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:974)
    at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:841)
    at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:452)
    at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:773)
    at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$9(IdeEventQueue.java:451)
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:495)
    at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
java.lang.Throwable
    at com.intellij.psi.impl.DebugUtil.startPsiModification(DebugUtil.java:534)
    at com.intellij.psi.impl.DebugUtil.performPsiModification(DebugUtil.java:565)
    at com.intellij.pom.core.impl.PomModelImpl.lambda$runTransaction$2(PomModelImpl.java:104)
    at com.intellij.openapi.progress.impl.CoreProgressManager.executeNonCancelableSection(CoreProgressManager.java:213)
    at com.intellij.pom.core.impl.PomModelImpl.runTransaction(PomModelImpl.java:93)
    at com.intellij.psi.impl.DiffLog.lambda$doActualPsiChange$0(DiffLog.java:270)
    at com.intellij.psi.impl.source.codeStyle.CodeStyleManagerImpl.lambda$performActionWithFormatterDisabled$6(CodeStyleManagerImpl.java:717)
    at com.intellij.psi.impl.source.PostprocessReformattingAspect.disablePostprocessFormattingInside(PostprocessReformattingAspect.java:127)
    at com.intellij.psi.impl.source.codeStyle.CodeStyleManagerImpl.lambda$performActionWithFormatterDisabled$8(CodeStyleManagerImpl.java:746)
    at com.intellij.formatting.FormatterImpl.runWithFormattingDisabled(FormatterImpl.java:682)
    at com.intellij.psi.impl.source.codeStyle.CodeStyleManagerImpl.performActionWithFormatterDisabled(CodeStyleManagerImpl.java:744)
    at com.intellij.psi.impl.source.codeStyle.CodeStyleManagerImpl.performActionWithFormatterDisabled(CodeStyleManagerImpl.java:716)
    at com.intellij.psi.impl.DiffLog.doActualPsiChange(DiffLog.java:258)
    at com.intellij.psi.impl.DocumentCommitThread.lambda$doCommit$5(DocumentCommitThread.java:332)
    at com.intellij.psi.impl.PsiDocumentManagerBase.commitToExistingPsi(PsiDocumentManagerBase.java:413)
    at com.intellij.psi.impl.PsiDocumentManagerBase.lambda$finishCommitInWriteAction$5(PsiDocumentManagerBase.java:386)
    at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$computeInNonCancelableSection$3(CoreProgressManager.java:237)
    at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:658)
    at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:610)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:65)
    at com.intellij.openapi.progress.impl.CoreProgressManager.executeNonCancelableSection(CoreProgressManager.java:218)
    at com.intellij.openapi.progress.impl.CoreProgressManager.computeInNonCancelableSection(CoreProgressManager.java:235)
    at com.intellij.psi.impl.PsiDocumentManagerBase.finishCommitInWriteAction(PsiDocumentManagerBase.java:380)
    at com.intellij.psi.impl.PsiDocumentManagerImpl.finishCommitInWriteAction(PsiDocumentManagerImpl.java:125)
    at com.intellij.psi.impl.PsiDocumentManagerBase$1.run(PsiDocumentManagerBase.java:339)
    at com.intellij.psi.impl.PsiDocumentManagerBase.finishCommit(PsiDocumentManagerBase.java:343)
    at com.intellij.psi.impl.DocumentCommitThread.lambda$createFinishCommitRunnable$2(DocumentCommitThread.java:160)
    at com.intellij.psi.impl.DocumentCommitThread.commitSynchronously(DocumentCommitThread.java:112)
    at com.intellij.psi.impl.PsiDocumentManagerBase.lambda$doCommit$7(PsiDocumentManagerBase.java:474)
    at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:1001)
    at com.intellij.psi.impl.PsiDocumentManagerBase.doCommit(PsiDocumentManagerBase.java:483)
    at com.intellij.psi.impl.PsiDocumentManagerBase.commitAllDocuments(PsiDocumentManagerBase.java:208)
    at com.intellij.codeInsight.editorActions.PasteHandler.indentEachLine(PasteHandler.java:273)
    at com.intellij.codeInsight.editorActions.PasteHandler.lambda$doPaste$4(PasteHandler.java:237)
    at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:1001)
    at com.intellij.codeInsight.editorActions.PasteHandler.doPaste(PasteHandler.java:220)
    at com.intellij.codeInsight.editorActions.PasteHandler.lambda$execute$2(PasteHandler.java:110)
    at com.intellij.openapi.project.DumbService.runWithAlternativeResolveEnabled(DumbService.java:367)
    at com.intellij.codeInsight.editorActions.PasteHandler.execute(PasteHandler.java:101)
    at com.intellij.codeInsight.editorActions.PasteHandler.doExecute(PasteHandler.java:58)
    at com.intellij.openapi.editor.actionSystem.DynamicEditorActionHandler.doExecute(DynamicEditorActionHandler.java:52)
    at com.intellij.openapi.editor.actionSystem.EditorActionHandler.lambda$execute$4(EditorActionHandler.java:198)
    at com.intellij.openapi.editor.actionSystem.EditorActionHandler.doIfEnabled(EditorActionHandler.java:88)
    at com.intellij.openapi.editor.actionSystem.EditorActionHandler.execute(EditorActionHandler.java:197)
    at com.intellij.openapi.editor.actionSystem.EditorAction.lambda$actionPerformed$0(EditorAction.java:89)
    at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:220)
    at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:177)
    at com.intellij.openapi.editor.actionSystem.EditorAction.actionPerformed(EditorAction.java:98)
    at com.intellij.openapi.editor.actionSystem.EditorAction.actionPerformed(EditorAction.java:73)
    at com.intellij.openapi.actionSystem.ex.ActionUtil.performActionDumbAware(ActionUtil.java:281)
    at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher$1.performAction(IdeKeyEventDispatcher.java:615)
    at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.lambda$processAction$3(IdeKeyEventDispatcher.java:675)
    at com.intellij.openapi.application.TransactionGuardImpl.performUserActivity(TransactionGuardImpl.java:95)
    at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.processAction(IdeKeyEventDispatcher.java:674)
    at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.processAction(IdeKeyEventDispatcher.java:625)
    at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.processActionOrWaitSecondStroke(IdeKeyEventDispatcher.java:522)
    at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.inInitState(IdeKeyEventDispatcher.java:476)
    at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.dispatchKeyEvent(IdeKeyEventDispatcher.java:225)
    at com.intellij.ide.IdeEventQueue.dispatchKeyEvent(IdeEventQueue.java:890)
    at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:835)
    at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:452)
    at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:773)
    at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$9(IdeEventQueue.java:451)
    at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:823)
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:505)
    at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
RubyMine 2020.3 EAP
Build #RM-203.4818.9, built on October 13, 2020
Runtime version: 11.0.8+10-b1129.2 x86_64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
macOS 10.13
GC: ParNew, ConcurrentMarkSweep
Memory: 1966M
Cores: 4
Non-Bundled Plugins: Railways

Wasn't sure if you wanted a report about this or if I should wait to see if it happens on the next full relese of RM (non-EAP release)?

If there is anything else you need, let me know.

Thanks!

basgren commented 3 years ago

Thank you for the report. Of course, I'd prefer to wait until more stable release, as EAP might have be also unstable, but I'll try to check the issue on a test project and let you know.

thestelz commented 3 years ago

I figured as much, but just in case. I'll keep that in mind if I ever have any other issues. I'll wait until the stable release comes out to see if I still have issues. I'll close this issue out until then. Thanks!