Error in SonarLint for IntelliJ - PsiInvalidElementAccessException

ExternalToolPass: 

com.intellij.diagnostic.PluginException: annotator: org.sonarlint.intellij.editor.SonarExternalAnnotator@42125659 (class org.sonarlint.intellij.editor.SonarExternalAnnotator) [Plugin: org.sonarlint.idea]
	at com.intellij.ide.plugins.PluginManagerCore.createPluginException(PluginManagerCore.java:446)
	at com.intellij.diagnostic.PluginProblemReporterImpl.createPluginExceptionByClass(PluginProblemReporterImpl.java:12)
	at com.intellij.diagnostic.PluginException.createByClass(PluginException.java:58)
	at com.intellij.codeInsight.daemon.impl.ExternalToolPass.process(ExternalToolPass.java:256)
	at com.intellij.codeInsight.daemon.impl.ExternalToolPass.doApply(ExternalToolPass.java:221)
	at com.intellij.codeInsight.daemon.impl.ExternalToolPass.access$700(ExternalToolPass.java:41)
	at com.intellij.codeInsight.daemon.impl.ExternalToolPass$1.lambda$null$1(ExternalToolPass.java:185)
	at com.intellij.openapi.application.ReadAction.lambda$run$1(ReadAction.java:52)
	at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:898)
	at com.intellij.openapi.application.ReadAction.compute(ReadAction.java:61)
	at com.intellij.openapi.application.ReadAction.run(ReadAction.java:51)
	at com.intellij.codeInsight.daemon.impl.ExternalToolPass$1.lambda$run$2(ExternalToolPass.java:182)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:164)
	at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:625)
	at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:570)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:61)
	at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:151)
	at com.intellij.openapi.progress.util.BackgroundTaskUtil.runUnderDisposeAwareIndicator(BackgroundTaskUtil.java:257)
	at com.intellij.codeInsight.daemon.impl.ExternalToolPass$1.run(ExternalToolPass.java:180)
	at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:333)
	at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:323)
	at com.intellij.util.ui.update.MergingUpdateQueue.lambda$flush$1(MergingUpdateQueue.java:273)
	at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:287)
	at com.intellij.util.ui.update.MergingUpdateQueue.run(MergingUpdateQueue.java:242)
	at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:232)
	at com.intellij.util.Alarm$Request.runSafely(Alarm.java:367)
	at com.intellij.util.Alarm$Request.run(Alarm.java:357)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at com.intellij.util.concurrency.SchedulingWrapper$MyScheduledFutureTask.run(SchedulingWrapper.java:220)
	at com.intellij.util.concurrency.BoundedTaskExecutor.doRun(BoundedTaskExecutor.java:222)
	at com.intellij.util.concurrency.BoundedTaskExecutor.access$200(BoundedTaskExecutor.java:29)
	at com.intellij.util.concurrency.BoundedTaskExecutor$1.execute(BoundedTaskExecutor.java:201)
	at com.intellij.util.ConcurrencyUtil.runUnderThreadName(ConcurrencyUtil.java:210)
	at com.intellij.util.concurrency.BoundedTaskExecutor$1.run(BoundedTaskExecutor.java:190)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: com.intellij.psi.PsiInvalidElementAccessException: Element: class com.intellij.psi.impl.source.PsiJavaFileImpl #JAVA  because: different providers: com.intellij.psi.SingleRootFileViewProvider{vFile=file://C:/Projects/swagelok/hybris/bin/custom/swagelok/swagelokbackoffice/src/org/swagelokbackoffice/security/sso/SwagelokSSORedirectionControllerBase.java, content=VirtualFileContent{size=4038}, eventSystemEnabled=true}(149821a5); com.intellij.psi.SingleRootFileViewProvider{vFile=file://C:/Projects/swagelok/hybris/bin/custom/swagelok/swagelokbackoffice/src/org/swagelokbackoffice/security/sso/SwagelokSSORedirectionControllerBase.java, content=VirtualFileContent{size=4038}, eventSystemEnabled=true}(78e3d702)
invalidated at: see attachment
	at com.intellij.psi.util.PsiUtilCore.ensureValid(PsiUtilCore.java:477)
	at com.intellij.psi.impl.source.PsiFileImpl.getTextLength(PsiFileImpl.java:299)
	at com.intellij.psi.impl.source.PsiFileImpl.getTextRange(PsiFileImpl.java:305)
	at org.sonarlint.intellij.editor.SonarExternalAnnotator.addAnnotation(SonarExternalAnnotator.java:107)
	at org.sonarlint.intellij.editor.SonarExternalAnnotator.lambda$apply$1(SonarExternalAnnotator.java:78)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
	at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177)
	at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1654)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
	at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:497)
	at org.sonarlint.intellij.editor.SonarExternalAnnotator.apply(SonarExternalAnnotator.java:74)
	at org.sonarlint.intellij.editor.SonarExternalAnnotator.apply(SonarExternalAnnotator.java:53)
	at com.intellij.codeInsight.daemon.impl.AnnotationHolderImpl.applyExternalAnnotatorWithContext(AnnotationHolderImpl.java:204)
	at com.intellij.codeInsight.daemon.impl.ExternalToolPass.doApply(ExternalToolPass.java:218)
	... 33 more

Hello, thanks for reporting.

Could you please provide a bit more context? E.g:

  • IDE + version
  • Version of SonarLint
  • Project configuration (Maven, Gradle, single or multi-module)
  • What you were doing/trying to do when the exception occurred

IIRC, we already got reports of a similar exception, however it is transient and very hard to reproduce. So any relevant context information can help with the resolution.

Thanks in advance.