mplushnikov / lombok-intellij-plugin

Lombok Plugin for IntelliJ IDEA
Apache License 2.0
3.11k stars 635 forks source link

Throwable: It's prohibited to access index #filetypes during event dispatching #999

Open schnapster opened 3 years ago

schnapster commented 3 years ago

Short description

Not sure about the exact steps to reproduce, but over the course of a working day these Throwables happen 5-10 times. These might have started after a recent update from IntelliJ 2020.2 to 2020.3

See also https://github.com/krasa/EclipseCodeFormatter/issues/220 where IntelliJ error window linked me first with this.

Expected behavior

While nothing appears to really be broken, ideally, there should be no exceptions bugging the users of the plugin.

Version information

Steps to reproduce

No idea. These appear randomly and I notice them late, not had the chance to spot any concrete pattern yet.

Sample project

Sorry, no idea what is triggering this, and I cannot upload a whole closed source project. If there is no obvious fix, I can try boiling it down maybe in the future.

Additional information

None.

Stacktrace

If you are experiencing an issue and IntelliJ throws an error please provide the stacktrace.


java.lang.Throwable: It's prohibited to access index #filetypes during event dispatching
    at com.intellij.openapi.diagnostic.Logger.error(Logger.java:159)
    at com.intellij.openapi.project.NoAccessDuringPsiEvents.checkCallContext(NoAccessDuringPsiEvents.java:31)
    at com.intellij.openapi.project.NoAccessDuringPsiEvents.checkCallContext(NoAccessDuringPsiEvents.java:26)
    at com.intellij.util.indexing.FileBasedIndexImpl.ensureUpToDate(FileBasedIndexImpl.java:692)
    at com.intellij.util.indexing.FileBasedIndexEx.processExceptions(FileBasedIndexEx.java:230)
    at com.intellij.util.indexing.FileBasedIndexEx.processValueIterator(FileBasedIndexEx.java:335)
    at com.intellij.util.indexing.FileBasedIndexEx.processValuesInScope(FileBasedIndexEx.java:304)
    at com.intellij.util.indexing.FileBasedIndexEx.processValues(FileBasedIndexEx.java:205)
    at com.intellij.util.indexing.FileBasedIndexEx.processValues(FileBasedIndexEx.java:193)
    at com.intellij.psi.search.FileTypeIndex.processFiles(FileTypeIndex.java:47)
    at com.intellij.psi.search.FileTypeIndex.containsFileOfType(FileTypeIndex.java:43)
    at com.intellij.lang.aspectj.augment.AjPsiAugmentProvider.lambda$hasAspectJ$0(AjPsiAugmentProvider.java:42)
    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:110)
    at com.intellij.lang.aspectj.augment.AjPsiAugmentProvider.hasAspectJ(AjPsiAugmentProvider.java:41)
    at com.intellij.lang.aspectj.augment.AjPsiAugmentProvider.getAjAugments(AjPsiAugmentProvider.java:34)
    at com.intellij.lang.aspectj.augment.AjPsiAugmentProvider.getAugments(AjPsiAugmentProvider.java:29)
    at com.intellij.psi.augment.PsiAugmentProvider.lambda$collectAugments$2(PsiAugmentProvider.java:119)
    at com.intellij.psi.augment.PsiAugmentProvider.forEach(PsiAugmentProvider.java:200)
    at com.intellij.psi.augment.PsiAugmentProvider.collectAugments(PsiAugmentProvider.java:118)
    at com.intellij.psi.impl.source.ClassInnerStuffCache.lambda$getInnerClassesMap$10(ClassInnerStuffCache.java:201)
    at com.intellij.util.containers.ConcurrentFactoryMap$2.create(ConcurrentFactoryMap.java:174)
    at com.intellij.util.containers.ConcurrentFactoryMap.get(ConcurrentFactoryMap.java:40)
    at com.intellij.psi.impl.source.ClassInnerStuffCache.findInnerClassByName(ClassInnerStuffCache.java:81)
    at com.intellij.psi.impl.source.PsiClassImpl.findInnerClassByName(PsiClassImpl.java:377)
    at com.intellij.psi.impl.PsiClassImplUtil.processCachedMembersByName(PsiClassImplUtil.java:502)
    at com.intellij.psi.impl.PsiClassImplUtil.processDeclarationsInClass(PsiClassImplUtil.java:422)
    at com.intellij.psi.impl.PsiClassImplUtil.processDeclarationsInClass(PsiClassImplUtil.java:399)
    at com.intellij.psi.impl.source.PsiClassImpl.processDeclarations(PsiClassImpl.java:474)
    at com.intellij.psi.scope.util.PsiScopesUtil.treeWalkUp(PsiScopesUtil.java:61)
    at com.intellij.psi.scope.util.PsiScopesUtil.treeWalkUp(PsiScopesUtil.java:40)
    at com.intellij.psi.scope.util.PsiScopesUtil.resolveAndWalk(PsiScopesUtil.java:207)
    at com.intellij.psi.scope.util.PsiScopesUtil.resolveAndWalk(PsiScopesUtil.java:136)
    at com.intellij.psi.impl.source.PsiJavaCodeReferenceElementImpl.resolve(PsiJavaCodeReferenceElementImpl.java:489)
    at com.intellij.psi.impl.source.PsiJavaCodeReferenceElementImpl.access$100(PsiJavaCodeReferenceElementImpl.java:44)
    at com.intellij.psi.impl.source.PsiJavaCodeReferenceElementImpl$OurGenericsResolver.resolve(PsiJavaCodeReferenceElementImpl.java:375)
    at com.intellij.psi.impl.source.PsiJavaCodeReferenceElementImpl$OurGenericsResolver.resolve(PsiJavaCodeReferenceElementImpl.java:368)
    at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$resolveWithCaching$2(ResolveCache.java:179)
    at com.intellij.openapi.util.Computable.get(Computable.java:17)
    at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$loggingResolver$3(ResolveCache.java:221)
    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.psi.impl.source.resolve.ResolveCache.resolve(ResolveCache.java:198)
    at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:179)
    at com.intellij.psi.impl.PsiImplUtil.multiResolveImpl(PsiImplUtil.java:806)
    at com.intellij.psi.impl.source.PsiJavaCodeReferenceElementImpl.getCanonicalText(PsiJavaCodeReferenceElementImpl.java:290)
    at com.intellij.psi.impl.source.PsiJavaCodeReferenceElementImpl.getCanonicalText(PsiJavaCodeReferenceElementImpl.java:280)
    at com.intellij.psi.impl.source.PsiClassReferenceType.getText(PsiClassReferenceType.java:241)
    at com.intellij.psi.impl.source.PsiClassReferenceType.getCanonicalText(PsiClassReferenceType.java:228)
    at com.intellij.psi.PsiClassType$Stub.getCanonicalText(PsiClassType.java:352)
    at de.plushnikov.intellij.plugin.psi.LombokLightParameter.equals(LombokLightParameter.java:78)
    at java.base/java.util.Objects.equals(Objects.java:77)
    at java.base/java.util.Arrays.equals(Arrays.java:3187)
    at de.plushnikov.intellij.plugin.psi.LombokLightParameterListBuilder.equals(LombokLightParameterListBuilder.java:31)
    at de.plushnikov.intellij.plugin.psi.LombokLightMethodBuilder.equals(LombokLightMethodBuilder.java:288)
    at com.intellij.psi.impl.smartPointers.HardElementInfo.pointsToTheSameElementAs(HardElementInfo.java:50)
    at com.intellij.psi.impl.smartPointers.SmartPsiElementPointerImpl.pointsToTheSameElementAs(SmartPsiElementPointerImpl.java:293)
    at com.intellij.psi.impl.smartPointers.SmartPsiElementPointerImpl.equals(SmartPsiElementPointerImpl.java:72)
    at com.intellij.psi.impl.ElementBase$ElementIconRequest.equals(ElementBase.java:165)
    at java.base/java.util.concurrent.ConcurrentHashMap$TreeNode.findTreeNode(ConcurrentHashMap.java:2735)
    at java.base/java.util.concurrent.ConcurrentHashMap$TreeNode.findTreeNode(ConcurrentHashMap.java:2745)
    at java.base/java.util.concurrent.ConcurrentHashMap.computeIfPresent(ConcurrentHashMap.java:1845)
    at com.github.benmanes.caffeine.cache.BoundedLocalCache.removeNode(BoundedLocalCache.java:1806)
    at com.github.benmanes.caffeine.cache.BoundedLocalCache.clear(BoundedLocalCache.java:1788)
    at com.github.benmanes.caffeine.cache.LocalManualCache.invalidateAll(LocalManualCache.java:150)
    at com.intellij.ui.IconDeferrerImpl.clearCache(IconDeferrerImpl.java:68)
    at jdk.internal.reflect.GeneratedMethodAccessor258.invoke(Unknown Source)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at com.intellij.util.messages.impl.MessageBusImpl.invokeListener(MessageBusImpl.java:652)
    at com.intellij.util.messages.impl.MessageBusImpl.deliverMessage(MessageBusImpl.java:426)
    at com.intellij.util.messages.impl.MessageBusImpl.pumpWaitingBuses(MessageBusImpl.java:401)
    at com.intellij.util.messages.impl.MessageBusImpl.pumpMessages(MessageBusImpl.java:383)
    at com.intellij.util.messages.impl.MessageBusImpl.access$100(MessageBusImpl.java:33)
    at com.intellij.util.messages.impl.MessageBusImpl$MessagePublisher.invoke(MessageBusImpl.java:189)
    at com.sun.proxy.$Proxy66.modificationCountChanged(Unknown Source)
    at com.intellij.psi.impl.PsiModificationTrackerImpl.fireEvent(PsiModificationTrackerImpl.java:81)
    at com.intellij.psi.impl.PsiModificationTrackerImpl.incCountersInner(PsiModificationTrackerImpl.java:86)
    at com.intellij.psi.impl.PsiModificationTrackerImpl.treeChanged(PsiModificationTrackerImpl.java:96)
    at com.intellij.psi.impl.PsiManagerImpl.fireEvent(PsiManagerImpl.java:338)
    at com.intellij.psi.impl.PsiManagerImpl.beforeChildrenChange(PsiManagerImpl.java:231)
    at com.intellij.pom.core.impl.PomModelImpl.sendBeforeChildrenChangeEvent(PomModelImpl.java:350)
    at com.intellij.pom.core.impl.PomModelImpl.startTransaction(PomModelImpl.java:282)
    at com.intellij.pom.core.impl.PomModelImpl.lambda$runTransaction$2(PomModelImpl.java:96)
    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 jdk.internal.reflect.GeneratedMethodAccessor1182.invoke(Unknown Source)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at krasa.formatter.plugin.ProxyCodeStyleManagerDelegator.PLEASE_REPORT_BUGS_TO_JETBRAINS_IF_IT_FAILS_HERE____ORIGINAL_INTELLIJ_FORMATTER_WAS_USED(ProxyCodeStyleManagerDelegator.java:60)
    at krasa.formatter.plugin.ProxyCodeStyleManagerDelegator.invoke(ProxyCodeStyleManagerDelegator.java:28)
    at net.sf.cglib.empty.Object$$EnhancerByCGLIB$$a6c18dd5.performActionWithFormatterDisabled(<generated>)
    at com.intellij.psi.impl.DiffLog.doActualPsiChange(DiffLog.java:258)
    at com.intellij.psi.impl.DocumentCommitThread.lambda$doCommit$5(DocumentCommitThread.java:331)
    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:159)
    at com.intellij.psi.impl.DocumentCommitThread.commitSynchronously(DocumentCommitThread.java:111)
    at com.intellij.psi.impl.PsiDocumentManagerBase.lambda$doCommit$7(PsiDocumentManagerBase.java:474)
    at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:1000)
    at com.intellij.psi.impl.PsiDocumentManagerBase.doCommit(PsiDocumentManagerBase.java:483)
    at com.intellij.psi.impl.PsiDocumentManagerBase.commitAllDocuments(PsiDocumentManagerBase.java:208)
    at com.intellij.codeInsight.lookup.impl.LookupImpl.fireItemSelected(LookupImpl.java:904)
    at com.intellij.codeInsight.lookup.impl.LookupImpl.finishLookupInWritableFile(LookupImpl.java:568)
    at com.intellij.codeInsight.lookup.impl.LookupImpl.lambda$finishLookup$5(LookupImpl.java:526)
    at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:211)
    at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:177)
    at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:167)
    at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:153)
    at com.intellij.codeInsight.lookup.impl.LookupImpl.finishLookup(LookupImpl.java:526)
    at com.intellij.codeInsight.lookup.impl.LookupImpl.finishLookup(LookupImpl.java:511)
    at com.intellij.codeInsight.lookup.impl.actions.ChooseItemAction$Handler.doExecute(ChooseItemAction.java:71)
    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:892)
    at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:837)
    at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:454)
    at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:773)
    at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$9(IdeEventQueue.java:453)
    at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:822)
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:507)
    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)
mplushnikov commented 3 years ago

@napstr Can you please open an issue in https://youtrack.jetbrains.com/issues. Lombok plugin is bundled for IntelliJ starting with 2020.3, and we have to fix it there.