Skip to content

Attempt to take read lock was prevented error #246

@nchao

Description

@nchao
Exceptions

com.intellij.openapi.application.ThreadingSupport$LockAccessDisallowed: Attempt to take read lock was prevented
The use of the RW lock is forbidden by `Dispatchers.UI`. This dispatcher is intended for pure UI operations, which do not interact with the IntelliJ Platform model (PSI, VFS, etc.).
The following solutions are available:
1. Consider moving the model access outside `Dispatchers.UI`. This would help to ensure that the UI is responsive.
2. Consider using legacy `Dispatchers.EDT` that permits usage of the RW lock.

	at com.intellij.platform.locking.impl.NestedLocksThreadingSupport.handleLockAccess(NestedLocksThreadingSupport.kt:823)
	at com.intellij.platform.locking.impl.NestedLocksThreadingSupport.runReadAction(NestedLocksThreadingSupport.kt:829)
	at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:1109)
	at com.intellij.openapi.application.ReadAction.computeBlocking(ReadAction.java:88)
	at com.intellij.openapi.application.ReadAction.runBlocking(ReadAction.java:107)
	at com.intellij.openapi.application.ReadAction.run(ReadAction.java:56)
	at com.intellij.openapi.vcs.changes.ui.ChangesBrowserChangeNode.render(ChangesBrowserChangeNode.java:53)
	at com.intellij.openapi.vcs.changes.ui.ChangesBrowserNode.render(ChangesBrowserNode.java:264)
	at com.intellij.openapi.vcs.changes.ui.ChangesBrowserNodeRenderer.customizeCellRenderer(ChangesBrowserNodeRenderer.java:60)
	at com.intellij.ui.ColoredTreeCellRenderer.rendererComponentInner(ColoredTreeCellRenderer.java:128)
	at com.intellij.ui.ColoredTreeCellRenderer.getTreeCellRendererComponent(ColoredTreeCellRenderer.java:60)
	at com.intellij.openapi.vcs.changes.ui.ChangesTreeCellRenderer.getTreeCellRendererComponent(ChangesTreeCellRenderer.kt:57)
	at java.desktop/javax.swing.JTree$AccessibleJTree$AccessibleJTreeNode.getCurrentComponent(JTree.java:4842)
	at java.desktop/javax.swing.JTree$AccessibleJTree$AccessibleJTreeNode.getCurrentAccessibleContext(JTree.java:4819)
	at java.desktop/javax.swing.JTree$AccessibleJTree$AccessibleJTreeNode.getAccessibleRole(JTree.java:4928)
	at java.desktop/sun.lwawt.macosx.CAccessibility.getAccessibleRoleFor(CAccessibility.java:273)
	at java.desktop/sun.lwawt.macosx.CAccessibility$11.call(CAccessibility.java:283)
	at java.desktop/sun.lwawt.macosx.CAccessibility$11.call(CAccessibility.java:280)
	at java.desktop/sun.lwawt.macosx.LWCToolkit$CallableWrapper.run(LWCToolkit.java:757)
	at com.intellij.util.concurrency.ChildContext$runInChildContext$1.invoke(propagation.kt:192)
	at com.intellij.util.concurrency.ChildContext$runInChildContext$1.invoke(propagation.kt:192)
	at com.intellij.util.concurrency.ChildContext.runInChildContext(propagation.kt:198)
	at com.intellij.util.concurrency.ChildContext.runInChildContext(propagation.kt:192)
	at com.intellij.util.concurrency.ContextRunnable.lambda$run$0(ContextRunnable.java:26)
	at com.intellij.concurrency.ThreadContext.resetThreadContext(threadContext.kt:294)
	at com.intellij.util.concurrency.ContextRunnable.run(ContextRunnable.java:25)
	at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
	at java.desktop/sun.awt.AWTThreading$TrackedInvocationEvent.lambda$dispatch$0(AWTThreading.java:325)
	at java.desktop/sun.awt.AWTThreading$TrackedInvocationEvent.completeIfNotYet(AWTThreading.java:338)
	at java.desktop/sun.awt.AWTThreading$TrackedInvocationEvent.dispatch(AWTThreading.java:325)
	at java.desktop/sun.awt.AWTThreading.execute(AWTThreading.java:197)
	at java.desktop/sun.awt.AWTThreading.executeWaitToolkit(AWTThreading.java:121)
	at java.desktop/sun.awt.AWTThreading.executeWaitToolkit(AWTThreading.java:83)
	at java.desktop/sun.awt.AWTThreading.executeWaitToolkit(AWTThreading.java:94)
	at java.desktop/sun.lwawt.macosx.CPlatformWindow.lambda$toFront$0(CPlatformWindow.java:932)
	at java.desktop/sun.lwawt.macosx.CFRetainedResource.execute(CFRetainedResource.java:134)
	at java.desktop/sun.lwawt.macosx.CPlatformWindow.toFront(CPlatformWindow.java:932)
	at java.desktop/sun.lwawt.LWWindowPeer.toFront(LWWindowPeer.java:403)
	at java.desktop/java.awt.Window.toFront_NoClientCode(Window.java:1303)
	at java.desktop/java.awt.Window.toFront(Window.java:1291)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.lambda$toFrontImpl$5(FocusManagerImpl.java:279)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.lambda$doWhenFocusSettlesDown$4(FocusManagerImpl.java:184)
	at com.intellij.util.ui.EdtInvocationManager.invokeLaterIfNeeded(EdtInvocationManager.java:32)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.doWhenFocusSettlesDown(FocusManagerImpl.java:180)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.doWhenFocusSettlesDown(FocusManagerImpl.java:172)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.toFrontImpl(FocusManagerImpl.java:273)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.requestFocusInProject(FocusManagerImpl.java:129)
	at com.intellij.openapi.fileEditor.impl.EditorCompositeKt.focusEditorOnComposite(EditorComposite.kt:1185)
	at com.intellij.openapi.fileEditor.impl.EditorCompositeKt.focusEditorOnComposite$default(EditorComposite.kt:1168)
	at com.intellij.openapi.fileEditor.impl.EditorWindow$addComposite$2$1$1.invokeSuspend(EditorWindow.kt:434)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:34)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100)
	at com.intellij.openapi.application.impl.AppImplKt$runnableUnitFunction$1.invoke(appImpl.kt:124)
	at com.intellij.openapi.application.impl.AppImplKt$runnableUnitFunction$1.invoke(appImpl.kt:124)
	at com.intellij.platform.locking.impl.NestedLocksThreadingSupport.prohibitTakingLocksInsideAndRun(NestedLocksThreadingSupport.kt:1412)
	at com.intellij.openapi.application.impl.ApplicationImpl.prohibitTakingLocksInsideAndRun(ApplicationImpl.java:1500)
	at com.intellij.openapi.application.impl.EdtCoroutineDispatcher.wrapWithLocking$lambda$0(EdtCoroutineDispatcher.kt:70)
	at com.intellij.openapi.application.TransactionGuardImpl$

Metadata

Metadata

Assignees

No one assigned

    Labels

    IDE internal errorawaiting responsewaiting for more info from the author - will eventually close if they don't respond

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions