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