Error in SonarQube for IntelliJ

Environment:

  • Java: JetBrains s.r.o. 21.0.5
  • OS: Mac OS X x86_64
  • IDE: IntelliJ IDEA 2024.3.2.2
  • SonarQube for IDE: 10.16.1.80464
c.ij.oa.dg.RuntimeExceptionWithAttachments: Read access is allowed from inside read-action only (see Application.runReadAction()); If you access or modify model on EDT consider wrapping your code in WriteIntentReadAction ; see https://jb.gg/ij-platform-threading for details
Current thread: Thread[#86,AWT-EventQueue-0,6,main] 1550769139 (EventQueue.isDispatchThread()=true)
SystemEventQueueThread: (same)
	at c.ij.util.concurrency.ThreadingAssertions.createThreadAccessException(ThreadingAssertions.java:218)
	at c.ij.util.concurrency.ThreadingAssertions.softAssertReadAccess(ThreadingAssertions.java:155)
	at c.ij.oa.ap.impl.ApplicationImpl.assertReadAccessAllowed(ApplicationImpl.java:922)
	at c.ij.oa.editor.impl.CaretImpl.getOffset(CaretImpl.java:661)
	at c.ij.oa.editor.CaretModel.getOffset(CaretModel.java:129)
	at c.ij.diff.util.LineCol.fromCaret(LineCol.java:79)
	at c.ij.diff.tools.fragmented.UnifiedDiffViewer.getNavigatable(UnifiedDiffViewer.java:954)
	at c.ij.diff.tools.util.base.DiffViewerBase.uiDataSnapshot(DiffViewerBase.java:289)
	at c.ij.diff.tools.fragmented.UnifiedDiffViewer.uiDataSnapshot(UnifiedDiffViewer.java:1106)
	at c.ij.oa.actionSystem.impl.MySink.uiDataSnapshot(PreCachedDataContext.kt:529)
	at c.ij.oa.actionSystem.DataSink$Companion.uiDataSnapshot(UiDataProvider.kt:210)
	at c.ij.oa.actionSystem.DataSink$Companion.uiDataSnapshot(UiDataProvider.kt:191)
	at c.ij.oa.actionSystem.DataSink.uiDataSnapshot(UiDataProvider.kt)
	at c.ij.diff.tools.fragmented.UnifiedDiffViewer$1.uiDataSnapshot(UnifiedDiffViewer.java:143)
	at c.ij.oa.actionSystem.impl.MySink.uiDataSnapshot(PreCachedDataContext.kt:529)
	at c.ij.oa.actionSystem.DataSink$Companion.uiDataSnapshot(UiDataProvider.kt:210)
	at c.ij.oa.actionSystem.impl.PreCachedDataContextKt.cacheProviderData(PreCachedDataContext.kt:410)
	at c.ij.oa.actionSystem.impl.PreCachedDataContextKt.cacheComponentsData(PreCachedDataContext.kt:393)
	at c.ij.oa.actionSystem.impl.PreCachedDataContextKt.access$cacheComponentsData(PreCachedDataContext.kt:1)
	at c.ij.oa.actionSystem.impl.PreCachedDataContext.<init>(PreCachedDataContext.kt:95)
	at c.ij.oa.actionSystem.impl.Utils.createAsyncDataContext(Utils.kt:163)
	at c.ij.oa.fileEditor.impl.IdeUiServiceImpl.createUiDataContext(IdeUiServiceImpl.java:79)
	at c.ij.ide.impl.DataManagerImpl.getDataContext(DataManagerImpl.java:283)
	at c.ij.ui.mac.touchbar.TBPanelActionGroup.updateActionItems(TBPanelActionGroup.java:428)
	at c.ij.ui.mac.touchbar.TBPanelActionGroup$Updater$1.run(TBPanelActionGroup.java:455)
	at c.ij.oa.actionSystem.impl.CapturingListener.run$lambda$0(ActionManagerImpl.kt:1411)
	at c.ij.util.concurrency.ChildContext.runInChildContext(propagation.kt:107)
	at c.ij.oa.actionSystem.impl.CapturingListener.run(ActionManagerImpl.kt:1410)
	at c.ij.oa.actionSystem.impl.ActionManagerImplKt.runListenerAction(ActionManagerImpl.kt:1421)
	at c.ij.oa.actionSystem.impl.ActionManagerImplKt.access$runListenerAction(ActionManagerImpl.kt:1)
	at c.ij.oa.actionSystem.impl.ActionManagerImpl$MyTimer.tick(ActionManagerImpl.kt:1309)
	at c.ij.oa.actionSystem.impl.ActionManagerImpl$MyTimer.access$tick(ActionManagerImpl.kt:1255)
	at c.ij.oa.actionSystem.impl.ActionManagerImpl$MyTimer$2$1$1.invokeSuspend(ActionManagerImpl.kt:1284)

Hey @sebastianhaeni, thanks for reporting this issue.

By chance, do you have the full stack trace? It seems related to a diff viewer. Did the issue happen when checking a code snippet in the rule description?

I have a new stacktrace, hope this time it’s not cut off since I’m pasting it manually (the original post was made through the “Report issue” button).

The exception occurs when I commit changes. Note, that I use the “Non-modal commit interface”.

com.intellij.openapi.diagnostic.RuntimeExceptionWithAttachments: Read access is allowed from inside read-action only (see Application.runReadAction()); If you access or modify model on EDT consider wrapping your code in WriteIntentReadAction ; see https://jb.gg/ij-platform-threading for details
Current thread: Thread[#85,AWT-EventQueue-0,6,main] 435447910 (EventQueue.isDispatchThread()=true)
SystemEventQueueThread: (same)
	at com.intellij.util.concurrency.ThreadingAssertions.createThreadAccessException(ThreadingAssertions.java:218)
	at com.intellij.util.concurrency.ThreadingAssertions.softAssertReadAccess(ThreadingAssertions.java:155)
	at com.intellij.openapi.application.impl.ApplicationImpl.assertReadAccessAllowed(ApplicationImpl.java:922)
	at com.intellij.openapi.editor.impl.CaretImpl.getOffset(CaretImpl.java:661)
	at com.intellij.openapi.editor.CaretModel.getOffset(CaretModel.java:129)
	at com.intellij.diff.util.LineCol.fromCaret(LineCol.java:79)
	at com.intellij.diff.tools.fragmented.UnifiedDiffViewer.getNavigatable(UnifiedDiffViewer.java:954)
	at com.intellij.diff.tools.util.base.DiffViewerBase.uiDataSnapshot(DiffViewerBase.java:289)
	at com.intellij.diff.tools.fragmented.UnifiedDiffViewer.uiDataSnapshot(UnifiedDiffViewer.java:1106)
	at com.intellij.openapi.actionSystem.impl.MySink.uiDataSnapshot(PreCachedDataContext.kt:529)
	at com.intellij.openapi.actionSystem.DataSink$Companion.uiDataSnapshot(UiDataProvider.kt:210)
	at com.intellij.openapi.actionSystem.DataSink$Companion.uiDataSnapshot(UiDataProvider.kt:191)
	at com.intellij.openapi.actionSystem.DataSink.uiDataSnapshot(UiDataProvider.kt)
	at com.intellij.diff.tools.fragmented.UnifiedDiffViewer$1.uiDataSnapshot(UnifiedDiffViewer.java:143)
	at com.intellij.openapi.actionSystem.impl.MySink.uiDataSnapshot(PreCachedDataContext.kt:529)
	at com.intellij.openapi.actionSystem.DataSink$Companion.uiDataSnapshot(UiDataProvider.kt:210)
	at com.intellij.openapi.actionSystem.impl.PreCachedDataContextKt.cacheProviderData(PreCachedDataContext.kt:410)
	at com.intellij.openapi.actionSystem.impl.PreCachedDataContextKt.cacheComponentsData(PreCachedDataContext.kt:393)
	at com.intellij.openapi.actionSystem.impl.PreCachedDataContextKt.access$cacheComponentsData(PreCachedDataContext.kt:1)
	at com.intellij.openapi.actionSystem.impl.PreCachedDataContext.<init>(PreCachedDataContext.kt:95)
	at com.intellij.openapi.actionSystem.impl.Utils.createAsyncDataContext(Utils.kt:163)
	at com.intellij.openapi.fileEditor.impl.IdeUiServiceImpl.createUiDataContext(IdeUiServiceImpl.java:79)
	at com.intellij.ide.impl.DataManagerImpl.getDataContext(DataManagerImpl.java:283)
	at com.intellij.ui.mac.touchbar.TBPanelActionGroup.updateActionItems(TBPanelActionGroup.java:428)
	at com.intellij.ui.mac.touchbar.TBPanelActionGroup$Updater$1.run(TBPanelActionGroup.java:455)
	at com.intellij.openapi.actionSystem.impl.CapturingListener.run$lambda$0(ActionManagerImpl.kt:1411)
	at com.intellij.util.concurrency.ChildContext.runInChildContext(propagation.kt:107)
	at com.intellij.openapi.actionSystem.impl.CapturingListener.run(ActionManagerImpl.kt:1410)
	at com.intellij.openapi.actionSystem.impl.ActionManagerImplKt.runListenerAction(ActionManagerImpl.kt:1421)
	at com.intellij.openapi.actionSystem.impl.ActionManagerImplKt.access$runListenerAction(ActionManagerImpl.kt:1)
	at com.intellij.openapi.actionSystem.impl.ActionManagerImpl$MyTimer.tick(ActionManagerImpl.kt:1309)
	at com.intellij.openapi.actionSystem.impl.ActionManagerImpl$MyTimer.access$tick(ActionManagerImpl.kt:1255)
	at com.intellij.openapi.actionSystem.impl.ActionManagerImpl$MyTimer$2$1$1.invokeSuspend(ActionManagerImpl.kt:1284)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104)
	at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:781)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:728)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:722)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:400)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:750)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.kt:675)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.kt:573)
	at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$18$lambda$17$lambda$16$lambda$15(IdeEventQueue.kt:355)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:857)
	at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$18$lambda$17$lambda$16(IdeEventQueue.kt:354)
	at com.intellij.ide.IdeEventQueueKt.performActivity$lambda$3(IdeEventQueue.kt:1054)
	at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:117)
	at com.intellij.ide.IdeEventQueueKt.performActivity(IdeEventQueue.kt:1054)
	at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$18(IdeEventQueue.kt:349)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.kt:395)
	at com.intellij.ide.IdeEventQueue.pumpEventsForHierarchy(IdeEventQueue.kt:712)
	at com.intellij.openapi.progress.util.ProgressWindow.lambda$startBlocking$4(ProgressWindow.java:228)
	at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.runUnlockingIntendedWrite(AnyThreadWriteThreadingSupport.kt:236)
	at com.intellij.openapi.application.impl.ApplicationImpl.runUnlockingIntendedWrite(ApplicationImpl.java:849)
	at com.intellij.openapi.progress.util.ProgressWindow.lambda$startBlocking$5(ProgressWindow.java:223)
	at com.intellij.openapi.progress.util.ProgressWindow.executeInModalContext(ProgressWindow.java:204)
	at com.intellij.openapi.progress.util.ProgressWindow.startBlocking(ProgressWindow.java:221)
	at com.intellij.openapi.progress.impl.ProgressRunner.lambda$execFromEDT$7(ProgressRunner.java:315)
	at java.base/java.util.concurrent.CompletableFuture.uniAcceptNow(CompletableFuture.java:757)
	at java.base/java.util.concurrent.CompletableFuture.uniAcceptStage(CompletableFuture.java:735)
	at java.base/java.util.concurrent.CompletableFuture.thenAccept(CompletableFuture.java:2214)
	at com.intellij.openapi.progress.impl.ProgressRunner.execFromEDT(ProgressRunner.java:312)
	at com.intellij.openapi.progress.impl.ProgressRunner.submit(ProgressRunner.java:252)
	at com.intellij.openapi.progress.impl.ProgressRunner.submitAndGet(ProgressRunner.java:193)
	at com.intellij.openapi.application.impl.ApplicationImpl.runProcessWithProgressSynchronously(ApplicationImpl.java:382)
	at com.intellij.openapi.progress.impl.CoreProgressManager.runProcessWithProgressSynchronously(CoreProgressManager.java:592)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.runProcessWithProgressSynchronously(ProgressManagerImpl.java:104)
	at com.intellij.openapi.progress.impl.CoreProgressManager.run(CoreProgressManager.java:428)
	at com.intellij.openapi.progress.Task.queue(Task.java:137)
	at org.sonarlint.intellij.tasks.TaskRunnerKt.runModalTaskWithResult(TaskRunner.kt:34)
	at org.sonarlint.intellij.analysis.AnalysisSubmitter.analyzeFilesPreCommit(AnalysisSubmitter.java:143)
	at org.sonarlint.intellij.trigger.SonarLintCheckinHandler.beforeCheckin(SonarLintCheckinHandler.java:101)
	at com.intellij.vcs.commit.ProxyCommitCheck.runCheck$lambda$0(AbstractCommitWorkflow.kt:525)
	at com.intellij.openapi.progress.CoroutinesKt.blockingContextInner(coroutines.kt:341)
	at com.intellij.openapi.progress.CoroutinesKt$blockingContext$2.invokeSuspend(coroutines.kt:233)
	at com.intellij.openapi.progress.CoroutinesKt$blockingContext$2.invoke(coroutines.kt)
	at com.intellij.openapi.progress.CoroutinesKt$blockingContext$2.invoke(coroutines.kt)
	at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:62)
	at kotlinx.coroutines.CoroutineScopeKt.coroutineScope(CoroutineScope.kt:261)
	at com.intellij.openapi.progress.CoroutinesKt.blockingContext(coroutines.kt:232)
	at com.intellij.vcs.commit.ProxyCommitCheck.runCheck(AbstractCommitWorkflow.kt:524)
	at com.intellij.vcs.commit.AbstractCommitWorkflow$Companion.runCommitCheck(AbstractCommitWorkflow.kt:460)
	at com.intellij.vcs.commit.NonModalCommitWorkflowHandler$runLateCommitChecks$2$problem$1.invokeSuspend(NonModalCommitWorkflowHandler.kt:439)
	at com.intellij.vcs.commit.NonModalCommitWorkflowHandler$runLateCommitChecks$2$problem$1.invoke(NonModalCommitWorkflowHandler.kt)
	at com.intellij.vcs.commit.NonModalCommitWorkflowHandler$runLateCommitChecks$2$problem$1.invoke(NonModalCommitWorkflowHandler.kt)
	at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:62)
	at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:163)
	at kotlinx.coroutines.BuildersKt.withContext(Unknown Source)
	at com.intellij.platform.util.progress.SequentialProgressReporterImpl.sizedStep(SequentialProgressReporterImpl.kt:62)
	at com.intellij.platform.util.progress.SequentialProgressReporter.itemStep$suspendImpl(SequentialProgressReporter.kt:112)
	at com.intellij.platform.util.progress.SequentialProgressReporter.itemStep(SequentialProgressReporter.kt)
	at com.intellij.platform.util.progress.SequentialProgressReporter.itemStep$default(SequentialProgressReporter.kt:111)
	at com.intellij.vcs.commit.NonModalCommitWorkflowHandler.runLateCommitChecks(NonModalCommitWorkflowHandler.kt:438)
	at com.intellij.vcs.commit.NonModalCommitWorkflowHandler.access$runLateCommitChecks(NonModalCommitWorkflowHandler.kt:56)
	at com.intellij.vcs.commit.NonModalCommitWorkflowHandler$runLateCommitChecks$1.invokeSuspend(NonModalCommitWorkflowHandler.kt)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.UndispatchedCoroutine.afterResume(CoroutineContext.kt:277)
	at kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:99)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104)
	at com.intellij.openapi.application.impl.DispatchedRunnable.run(DispatchedRunnable.kt:44)
	at com.intellij.openapi.application.TransactionGuardImpl.runWithWritingAllowed(TransactionGuardImpl.java:236)
	at com.intellij.openapi.application.TransactionGuardImpl.access$100(TransactionGuardImpl.java:25)
	at com.intellij.openapi.application.TransactionGuardImpl$2.run(TransactionGuardImpl.java:218)
	at com.intellij.openapi.application.impl.FlushQueue.runNextEvent(FlushQueue.java:117)
	at com.intellij.openapi.application.impl.FlushQueue.flushNow(FlushQueue.java:43)
	at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:781)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:728)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:722)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:400)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:750)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.kt:675)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.kt:573)
	at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$18$lambda$17$lambda$16$lambda$15(IdeEventQueue.kt:355)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:857)
	at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$18$lambda$17$lambda$16(IdeEventQueue.kt:354)
	at com.intellij.ide.IdeEventQueueKt.performActivity$lambda$2$lambda$1(IdeEventQueue.kt:1045)
	at com.intellij.openapi.application.WriteIntentReadAction.lambda$run$0(WriteIntentReadAction.java:24)
	at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.runWriteIntentReadAction(AnyThreadWriteThreadingSupport.kt:128)
	at com.intellij.openapi.application.impl.ApplicationImpl.runWriteIntentReadAction(ApplicationImpl.java:917)
	at com.intellij.openapi.application.WriteIntentReadAction.compute(WriteIntentReadAction.java:55)
	at com.intellij.openapi.application.WriteIntentReadAction.run(WriteIntentReadAction.java:23)
	at com.intellij.ide.IdeEventQueueKt.performActivity$lambda$2(IdeEventQueue.kt:1045)
	at com.intellij.ide.IdeEventQueueKt.performActivity$lambda$3(IdeEventQueue.kt:1054)
	at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:109)
	at com.intellij.ide.IdeEventQueueKt.performActivity(IdeEventQueue.kt:1054)
	at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$18(IdeEventQueue.kt:349)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.kt:395)
	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)

And I have enabled “Perform SonarQube for IDE analysis” in the “Commit Checks”.

1 Like

Many thanks for the full stack trace and for reporting it to us! I created this bug ticket on our side; we will try to tackle it for our next release in approximately 2 weeks.

1 Like