intellij-plugin-save-actions icon indicating copy to clipboard operation
intellij-plugin-save-actions copied to clipboard

Exception in IntelliJ 2024.2: AWT events are not allowed inside write action

Open vb-chris opened this issue 1 year ago • 10 comments

Checklist

  • [X] I am able to reproduce the bug with the latest version
  • [X] I made sure that there are no existing issues - open or closed - which I could contribute my information to.
  • [X] I have taken the time to fill in all the required details. I understand that the bug report will be dismissed otherwise.
  • [X] This issue contains only one bug.

Affected version

1.2.3

Steps to reproduce the bug

  1. Open a project in IntelliJ IDEA

The behavior is intermittent: it happens sometimes, sometimes not. I didn't see a pattern yet.

Expected behavior

No Exception.

Actual behavior

An exception is reported by Intellij:

java.lang.Throwable: AWT events are not allowed inside write action: sun.awt.PeerEvent[INVOCATION_DEFAULT,runnable=sun.awt.SunToolkit$1@1114de0f,notifier=null,catchExceptions=false,when=1726753137451] on sun.awt.windows.WToolkit@4e4be3d2
	at com.intellij.openapi.diagnostic.Logger.error(Logger.java:376)
	at com.intellij.openapi.application.impl.ApplicationImpl.lambda$postInit$6(ApplicationImpl.java:1171)
	at com.intellij.ide.IdeEventQueue.runCustomProcessors(IdeEventQueue.kt:411)
	at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$10(IdeEventQueue.kt:372)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.kt:397)
	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.pumpEventsForFilter(EventDispatchThread.java:121)
	at java.desktop/java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:191)
	at java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:236)
	at java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:234)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:319)
	at java.desktop/java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:234)
	at java.desktop/java.awt.Dialog.show(Dialog.java:1079)
	at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl$MyDialog.show(DialogWrapperPeerImpl.java:887)
	at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl.show(DialogWrapperPeerImpl.java:469)
	at com.intellij.openapi.ui.DialogWrapper.doShow(DialogWrapper.java:1763)
	at com.intellij.openapi.ui.DialogWrapper.show(DialogWrapper.java:1712)
	at com.intellij.ui.messages.AlertMessagesManager.showMessageDialog(AlertMessagesManager.kt:70)
	at com.intellij.ui.messages.MessagesServiceImpl.showMessageDialog(MessagesServiceImpl.java:54)
	at com.jetbrains.rdserver.ui.BackendMessagesService.showMessageDialog(BackendMessagesService.kt:33)
	at com.intellij.openapi.ui.messages.MessagesService.showMessageDialog$default(MessagesService.kt:36)
	at com.intellij.openapi.ui.OkCancelDialogBuilder.show(MessageDialogBuilder.kt:201)
	at com.intellij.openapi.ui.OkCancelDialogBuilder.ask(MessageDialogBuilder.kt:191)
	at com.intellij.openapi.ui.Messages.showOkCancelDialog(Messages.java:480)
	at com.intellij.vcs.commit.SaveCommittingDocumentsVetoerKt.confirmSave(SaveCommittingDocumentsVetoer.kt:85)
	at com.intellij.vcs.commit.SaveCommittingDocumentsVetoerKt.access$confirmSave(SaveCommittingDocumentsVetoer.kt:1)
	at com.intellij.vcs.commit.SaveCommittingDocumentsVetoer.maySaveDocument(SaveCommittingDocumentsVetoer.kt:60)
	at com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl.maySaveDocument(FileDocumentManagerImpl.java:385)
	at com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl.doSaveDocument(FileDocumentManagerImpl.java:370)
	at com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl.saveDocument(FileDocumentManagerImpl.java:324)
	at com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl.saveDocument(FileDocumentManagerImpl.java:313)
	at com.intellij.formatting.service.AsyncDocumentFormattingService$FormattingRequestImpl.<init>(AsyncDocumentFormattingService.java:180)
	at com.intellij.formatting.service.AsyncDocumentFormattingService.formatDocument(AsyncDocumentFormattingService.java:75)
	at com.intellij.formatting.service.AbstractDocumentFormattingService.formatRanges(AbstractDocumentFormattingService.java:67)
	at com.intellij.formatting.service.FormattingServiceUtil.formatRanges(FormattingServiceUtil.java:117)
	at com.intellij.psi.impl.source.codeStyle.CodeStyleManagerImpl.reformatText(CodeStyleManagerImpl.java:164)
	at com.intellij.psi.impl.source.codeStyle.CodeStyleManagerImpl.reformatText(CodeStyleManagerImpl.java:90)
	at com.intellij.codeInsight.actions.ReformatCodeProcessor.doReformat(ReformatCodeProcessor.java:221)
	at com.intellij.codeInsight.actions.ReformatCodeProcessor.lambda$prepareTask$5(ReformatCodeProcessor.java:166)
	at com.intellij.psi.codeStyle.CodeStyleSettingsManager.runWithLocalSettings(CodeStyleSettingsManager.java:113)
	at com.intellij.application.options.CodeStyle.runWithLocalSettings(CodeStyle.java:366)
	at com.intellij.codeInsight.actions.ReformatCodeProcessor.lambda$prepareTask$6(ReformatCodeProcessor.java:158)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
	at com.intellij.codeInsight.actions.AbstractLayoutCodeProcessor$ProcessingTask.lambda$performFileProcessing$7(AbstractLayoutCodeProcessor.java:465)
	at com.intellij.openapi.command.WriteCommandAction$BuilderImpl.lambda$doRunWriteCommandAction$1(WriteCommandAction.java:147)
	at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.runWriteAction$lambda$4(AnyThreadWriteThreadingSupport.kt:318)
	at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.runWriteAction(AnyThreadWriteThreadingSupport.kt:328)
	at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.runWriteAction(AnyThreadWriteThreadingSupport.kt:318)
	at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:890)
	at com.intellij.openapi.command.WriteCommandAction$BuilderImpl.lambda$doRunWriteCommandAction$2(WriteCommandAction.java:145)
	at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:217)
	at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:188)
	at com.intellij.openapi.command.WriteCommandAction$BuilderImpl.doRunWriteCommandAction(WriteCommandAction.java:154)
	at com.intellij.openapi.command.WriteCommandAction$BuilderImpl.run(WriteCommandAction.java:121)
	at com.intellij.codeInsight.actions.AbstractLayoutCodeProcessor$ProcessingTask.performFileProcessing(AbstractLayoutCodeProcessor.java:465)
	at com.intellij.codeInsight.actions.AbstractLayoutCodeProcessor$ProcessingTask.lambda$iteration$3(AbstractLayoutCodeProcessor.java:425)
	at com.intellij.openapi.project.DumbService.withAlternativeResolveEnabled(DumbService.kt:305)
	at com.intellij.codeInsight.actions.AbstractLayoutCodeProcessor$ProcessingTask.iteration(AbstractLayoutCodeProcessor.java:425)
	at com.intellij.codeInsight.actions.AbstractLayoutCodeProcessor$ProcessingTask.lambda$process$10(AbstractLayoutCodeProcessor.java:525)
	at com.intellij.codeInsight.actions.FileRecursiveIterator.lambda$processAll$4(FileRecursiveIterator.java:69)
	at com.intellij.openapi.roots.impl.FileIndexBase.lambda$toContentIteratorEx$1(FileIndexBase.java:48)
	at com.intellij.workspaceModel.core.fileIndex.impl.WorkspaceFileIndexImpl$processContentFilesRecursively$visitor$1.visitFileEx(WorkspaceFileIndexImpl.kt:157)
	at com.intellij.openapi.vfs.VfsUtilCore.visitChildrenRecursively(VfsUtilCore.java:302)
	at com.intellij.workspaceModel.core.fileIndex.impl.WorkspaceFileIndexImpl.processContentFilesRecursively(WorkspaceFileIndexImpl.kt:166)
	at com.intellij.workspaceModel.core.fileIndex.impl.WorkspaceFileIndexImpl.processContentFilesRecursively(WorkspaceFileIndexImpl.kt:125)
	at com.intellij.openapi.roots.impl.FileIndexBase.iterateContentUnderDirectory(FileIndexBase.java:41)
	at com.intellij.openapi.roots.impl.ProjectFileIndexImpl.iterateContentUnderDirectory(ProjectFileIndexImpl.java:30)
	at com.intellij.openapi.roots.impl.FileIndexBase.iterateContentUnderDirectory(FileIndexBase.java:72)
	at com.intellij.openapi.roots.impl.ProjectFileIndexImpl.iterateContentUnderDirectory(ProjectFileIndexImpl.java:30)
	at com.intellij.codeInsight.actions.FileRecursiveIterator.processAll(FileRecursiveIterator.java:64)
	at com.intellij.codeInsight.actions.AbstractLayoutCodeProcessor$ProcessingTask.process(AbstractLayoutCodeProcessor.java:523)
	at com.intellij.codeInsight.actions.AbstractLayoutCodeProcessor.processFilesUnderProgress(AbstractLayoutCodeProcessor.java:365)
	at com.intellij.codeInsight.actions.AbstractLayoutCodeProcessor.lambda$runProcessFiles$1(AbstractLayoutCodeProcessor.java:316)
	at com.intellij.openapi.progress.impl.CoreProgressManager$1.run(CoreProgressManager.java:299)
	at com.intellij.openapi.progress.impl.CoreProgressManager.startTask(CoreProgressManager.java:477)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.startTask(ProgressManagerImpl.java:133)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcessWithProgressSynchronously$9(CoreProgressManager.java:567)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:217)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$13(CoreProgressManager.java:660)
	at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:735)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:691)
	at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:659)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:79)
	at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:202)
	at com.intellij.openapi.application.impl.ApplicationImpl.runProcessWithProgressSynchronously(ApplicationImpl.java:347)
	at com.intellij.openapi.progress.impl.CoreProgressManager.runProcessWithProgressSynchronously(CoreProgressManager.java:578)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.runProcessWithProgressSynchronously(ProgressManagerImpl.java:104)
	at com.intellij.openapi.progress.impl.CoreProgressManager.runProcessWithProgressSynchronously(CoreProgressManager.java:295)
	at com.intellij.codeInsight.actions.AbstractLayoutCodeProcessor.runProcessFiles(AbstractLayoutCodeProcessor.java:314)
	at com.intellij.codeInsight.actions.AbstractLayoutCodeProcessor.run(AbstractLayoutCodeProcessor.java:225)
	at software.xdev.saveactions.processors.SaveWriteCommand.lambda$execute$0(SaveWriteCommand.java:33)
	at com.intellij.openapi.command.WriteCommandAction$BuilderImpl.lambda$doRunWriteCommandAction$1(WriteCommandAction.java:147)
	at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.runWriteAction$lambda$4(AnyThreadWriteThreadingSupport.kt:318)
	at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.runWriteAction(AnyThreadWriteThreadingSupport.kt:328)
	at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.runWriteAction(AnyThreadWriteThreadingSupport.kt:318)
	at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:890)
	at com.intellij.openapi.command.WriteCommandAction$BuilderImpl.lambda$doRunWriteCommandAction$2(WriteCommandAction.java:145)
	at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:226)
	at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:188)
	at com.intellij.openapi.command.WriteCommandAction$BuilderImpl.doRunWriteCommandAction(WriteCommandAction.java:154)
	at com.intellij.openapi.command.WriteCommandAction$BuilderImpl.run(WriteCommandAction.java:121)
	at software.xdev.saveactions.processors.SaveWriteCommand.execute(SaveWriteCommand.java:33)
	at software.xdev.saveactions.core.component.Engine.lambda$processPsiFiles$6(Engine.java:105)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
	at java.base/java.util.stream.ReferencePipeline$15$1.accept(ReferencePipeline.java:541)
	at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179)
	at java.base/java.util.AbstractList$RandomAccessSpliterator.forEachRemaining(AbstractList.java:722)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:575)
	at java.base/java.util.stream.AbstractPipeline.evaluateToArrayNode(AbstractPipeline.java:260)
	at java.base/java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:616)
	at java.base/java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:622)
	at java.base/java.util.stream.ReferencePipeline.toList(ReferencePipeline.java:627)
	at software.xdev.saveactions.core.component.Engine.processPsiFiles(Engine.java:106)
	at software.xdev.saveactions.core.component.Engine.processPsiFilesIfNecessary(Engine.java:81)
	at software.xdev.saveactions.core.service.impl.AbstractSaveActionsService.guardedProcessPsiFiles(AbstractSaveActionsService.java:79)
	at software.xdev.saveactions.core.service.impl.SaveActionsJavaService.guardedProcessPsiFiles(SaveActionsJavaService.java:23)
	at software.xdev.saveactions.core.listener.SaveActionsDocumentManagerListener.beforeDocumentsSaving(SaveActionsDocumentManagerListener.java:67)
	at software.xdev.saveactions.core.listener.SaveActionsDocumentManagerListener.beforeAllDocumentsSaving(SaveActionsDocumentManagerListener.java:50)
	at com.intellij.util.messages.impl.MessageBusImplKt.invokeMethod(MessageBusImpl.kt:719)
	at com.intellij.util.messages.impl.MessageBusImplKt.invokeListener(MessageBusImpl.kt:682)
	at com.intellij.util.messages.impl.MessageBusImplKt.executeOrAddToQueue(MessageBusImpl.kt:514)
	at com.intellij.util.messages.impl.ToDirectChildrenMessagePublisher.publish$intellij_platform_core(CompositeMessageBus.kt:310)
	at com.intellij.util.messages.impl.MessagePublisher.invoke(MessageBusImpl.kt:471)
	at jdk.proxy2/jdk.proxy2.$Proxy22.beforeAllDocumentsSaving(Unknown Source)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl.multiCast(FileDocumentManagerImpl.java:174)
	at com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl.lambda$new$0(FileDocumentManagerImpl.java:130)
	at jdk.proxy2/jdk.proxy2.$Proxy22.beforeAllDocumentsSaving(Unknown Source)
	at com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl.saveDocuments(FileDocumentManagerImpl.java:279)
	at com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl.saveAllDocuments(FileDocumentManagerImpl.java:267)
	at com.intellij.configurationStore.SaveAndSyncHandlerImpl$listenIdleAndActivate$2.applicationDeactivated(SaveAndSyncHandlerImpl.kt:186)
	at com.intellij.util.messages.impl.MessageBusImplKt.invokeMethod(MessageBusImpl.kt:722)
	at com.intellij.util.messages.impl.MessageBusImplKt.invokeListener(MessageBusImpl.kt:682)
	at com.intellij.util.messages.impl.MessageBusImplKt.deliverMessage(MessageBusImpl.kt:445)
	at com.intellij.util.messages.impl.MessageBusImplKt.pumpWaiting(MessageBusImpl.kt:414)
	at com.intellij.util.messages.impl.MessageBusImplKt.access$pumpWaiting(MessageBusImpl.kt:1)
	at com.intellij.util.messages.impl.MessagePublisher.invoke(MessageBusImpl.kt:483)
	at jdk.proxy2/jdk.proxy2.$Proxy50.onFrameDeactivated(Unknown Source)
	at com.intellij.ide.FrameStateManagerAppListener.applicationDeactivated(FrameStateManagerAppListener.java:69)
	at com.intellij.util.messages.impl.MessageBusImplKt.invokeMethod(MessageBusImpl.kt:722)
	at com.intellij.util.messages.impl.MessageBusImplKt.invokeListener(MessageBusImpl.kt:682)
	at com.intellij.util.messages.impl.MessageBusImplKt.deliverMessage(MessageBusImpl.kt:445)
	at com.intellij.util.messages.impl.MessageBusImplKt.pumpWaiting(MessageBusImpl.kt:424)
	at com.intellij.util.messages.impl.MessageBusImplKt.access$pumpWaiting(MessageBusImpl.kt:1)
	at com.intellij.util.messages.impl.MessagePublisher.invoke(MessageBusImpl.kt:483)
	at jdk.proxy2/jdk.proxy2.$Proxy49.applicationDeactivated(Unknown Source)
	at com.intellij.ide.ApplicationActivationStateManager.updateState(ApplicationActivationStateManager.kt:47)
	at com.intellij.ide.IdeEventQueueKt.processAppActivationEvent(IdeEventQueue.kt:1075)
	at com.intellij.ide.IdeEventQueueKt.access$processAppActivationEvent(IdeEventQueue.kt:1)
	at com.intellij.ide.IdeEventQueue._dispatchEvent$lambda$13(IdeEventQueue.kt:571)
	at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.runWriteIntentReadAction(AnyThreadWriteThreadingSupport.kt:84)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.kt:571)
	at com.intellij.ide.IdeEventQueue.access$_dispatchEvent(IdeEventQueue.kt:73)
	at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1$1$1.compute(IdeEventQueue.kt:357)
	at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1$1$1.compute(IdeEventQueue.kt:356)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:843)
	at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1$1.invoke(IdeEventQueue.kt:356)
	at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1$1.invoke(IdeEventQueue.kt:351)
	at com.intellij.ide.IdeEventQueueKt$performActivity$runnableWithWIL$1.invoke$lambda$0(IdeEventQueue.kt:1035)
	at com.intellij.openapi.application.WriteIntentReadAction.lambda$run$0(WriteIntentReadAction.java:24)
	at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.runWriteIntentReadAction(AnyThreadWriteThreadingSupport.kt:84)
	at com.intellij.openapi.application.impl.ApplicationImpl.runWriteIntentReadAction(ApplicationImpl.java:910)
	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$runnableWithWIL$1.invoke(IdeEventQueue.kt:1035)
	at com.intellij.ide.IdeEventQueueKt$performActivity$runnableWithWIL$1.invoke(IdeEventQueue.kt:1035)
	at com.intellij.ide.IdeEventQueueKt.performActivity$lambda$1(IdeEventQueue.kt:1036)
	at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:106)
	at com.intellij.ide.IdeEventQueueKt.performActivity(IdeEventQueue.kt:1036)
	at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$10(IdeEventQueue.kt:351)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.kt:397)
	at java.desktop/java.awt.SentEvent.dispatch(SentEvent.java:75)
	at java.desktop/java.awt.DefaultKeyboardFocusManager$DefaultKeyboardFocusManagerSentEvent.dispatch(DefaultKeyboardFocusManager.java:262)
	at java.desktop/java.awt.DefaultKeyboardFocusManager.sendMessage(DefaultKeyboardFocusManager.java:289)
	at java.desktop/java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:833)
	at com.intellij.ide.IdeKeyboardFocusManager.access$dispatchEvent$s1569605750(IdeKeyboardFocusManager.kt:28)
	at com.intellij.ide.IdeKeyboardFocusManager$dispatchEvent$dispatch$1.invoke(IdeKeyboardFocusManager.kt:43)
	at com.intellij.ide.IdeKeyboardFocusManager$dispatchEvent$dispatch$1.invoke(IdeKeyboardFocusManager.kt:43)
	at com.intellij.ide.IdeKeyboardFocusManager$dispatchEvent$1.invoke(IdeKeyboardFocusManager.kt:46)
	at com.intellij.ide.IdeKeyboardFocusManager$dispatchEvent$1.invoke(IdeKeyboardFocusManager.kt:46)
	at com.intellij.ide.IdeEventQueueKt$performActivity$runnableWithWIL$1.invoke$lambda$0(IdeEventQueue.kt:1035)
	at com.intellij.openapi.application.WriteIntentReadAction.lambda$run$0(WriteIntentReadAction.java:24)
	at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.runWriteIntentReadAction(AnyThreadWriteThreadingSupport.kt:84)
	at com.intellij.openapi.application.impl.ApplicationImpl.runWriteIntentReadAction(ApplicationImpl.java:910)
	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$runnableWithWIL$1.invoke(IdeEventQueue.kt:1035)
	at com.intellij.ide.IdeEventQueueKt$performActivity$runnableWithWIL$1.invoke(IdeEventQueue.kt:1035)
	at com.intellij.ide.IdeEventQueueKt.performActivity$lambda$1(IdeEventQueue.kt:1036)
	at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:114)
	at com.intellij.ide.IdeEventQueueKt.performActivity(IdeEventQueue.kt:1036)
	at com.intellij.ide.IdeKeyboardFocusManager.dispatchEvent(IdeKeyboardFocusManager.kt:46)
	at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:4909)
	at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324)
	at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2810)
	at java.desktop/java.awt.Component.dispatchEvent(Component.java:4860)
	at java.desktop/sun.awt.SunToolkit$1.run(SunToolkit.java:517)
	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:696)
	at com.intellij.ide.IdeEventQueue._dispatchEvent$lambda$16(IdeEventQueue.kt:590)
	at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.runWithoutImplicitRead(AnyThreadWriteThreadingSupport.kt:117)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.kt:590)
	at com.intellij.ide.IdeEventQueue.access$_dispatchEvent(IdeEventQueue.kt:73)
	at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1$1$1.compute(IdeEventQueue.kt:357)
	at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1$1$1.compute(IdeEventQueue.kt:356)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:843)
	at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1$1.invoke(IdeEventQueue.kt:356)
	at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1$1.invoke(IdeEventQueue.kt:351)
	at com.intellij.ide.IdeEventQueueKt$performActivity$runnableWithWIL$1.invoke$lambda$0(IdeEventQueue.kt:1035)
	at com.intellij.openapi.application.WriteIntentReadAction.lambda$run$0(WriteIntentReadAction.java:24)
	at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.runWriteIntentReadAction(AnyThreadWriteThreadingSupport.kt:84)
	at com.intellij.openapi.application.impl.ApplicationImpl.runWriteIntentReadAction(ApplicationImpl.java:910)
	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$runnableWithWIL$1.invoke(IdeEventQueue.kt:1035)
	at com.intellij.ide.IdeEventQueueKt$performActivity$runnableWithWIL$1.invoke(IdeEventQueue.kt:1035)
	at com.intellij.ide.IdeEventQueueKt.performActivity$lambda$1(IdeEventQueue.kt:1036)
	at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:106)
	at com.intellij.ide.IdeEventQueueKt.performActivity(IdeEventQueue.kt:1036)
	at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$10(IdeEventQueue.kt:351)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.kt:397)
	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)

Additional information

IntelliJ IDEA 2024.2.1 (Ultimate Edition)
Build #IU-242.21829.142, built on August 28, 2024
Runtime version: 21.0.3+13-b509.11 amd64 (JCEF 122.1.9)
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
Non-Bundled Plugins:
  software.xdev.saveactions (1.2.3)

vb-chris avatar Sep 19 '24 13:09 vb-chris

Probably related: https://github.com/xdev-software/intellij-plugin-save-actions/issues/23

vb-chris avatar Sep 19 '24 13:09 vb-chris

Thank you for the issue.

We haven't seen this problem for a while now and it's nearly impossible to reproduce (as can be seen in #23 ). I personally saw that error maybe once in the last 2 years.

Do you have any other plugins installed or any special files/windows open inside IDEA during startup that may be related to the problem? Or anything else that may help in narrowing down the problem?

AB-xdev avatar Sep 19 '24 14:09 AB-xdev

Thanks for your instant response! I experienced this issue since an upgrade from 2024.1 to 2024.2 a few days ago, have been using previous versions for years without it. I opened ~10 projects today, and the error occured in 2 of them right after opening the IDE. I will keep an eye on it and report anything that may help to spot the cause.

vb-chris avatar Sep 19 '24 14:09 vb-chris

So I had a look and I think the following is happening here:

  1. Due to some reason a keyboard event is fired DefaultKeyboardFocusManager
    • It looks like this is caused by a WINDOW_LOST_FOCUS event in awt:
  2. Causing a file save FileDocumentManagerImpl.saveAllDocuments
  3. This file save invokes the plugin SaveActionsDocumentManagerListener.beforeAllDocumentsSaving
  4. The plugin itself runs a save SaveWriteCommand
  5. This causes a VCS dialog to popup (SaveCommittingDocumentsVetoer)
    • During this process an unknown class com.jetbrains.rdserver.ui.BackendMessagesService is invoked - This class is not present inside the IntelliJ source code and must have originated from a plugin
      • Update: This class is loaded from the "Code with me" / cwm plugin (cwm-host.jar). According to the code showMessageDialog checks if a cwm session is active and if this is the case allows the dialog to be controlled remotely. Otherwise it just performs a normal call to MessagesServiceImpl.

→ The dialog likely can't be displayed as we are still inside a Keyboard event and the crash occurs

AB-xdev avatar Sep 20 '24 07:09 AB-xdev

The malfunction is likely caused by the fact that ProjectSettingsTracker#submitSettingsFilesRefresh saves all open files during project load.

It looks like this problem was introduced in IntelliJ 2020.1 and fixed in IntelliJ 2024.3 (EAP) with https://github.com/JetBrains/intellij-community/commit/765caa71175d0a67a54836cf840fae829da590d9

When opening a project with 2024.3 the beforeAllDocumentsSaving method is no longer called which effectively fixes this problem.

AB-xdev avatar Sep 20 '24 08:09 AB-xdev

Another problem seems to be that the IDE incorrectly detects "Save Files During Commit".

Related:

  • https://intellij-support.jetbrains.com/hc/en-us/community/posts/10500488428050-How-tell-always-save-file-before-commit
  • https://youtrack.jetbrains.com/issue/WI-65367/Commit-cause-Save-Files-During-Commit-dialog-box-frequently

@vb-chris

  • Do you have anything active inside Settings > Tools > Actions on Save?
  • Do you commit using the IDE or are you using an external app like "GtiHub Desktop"?
  • Is the problem gone if you invalidate the IDE cache (File > Invalidate Caches -> Tick "Clear file system..." and "Clear VCS Log...")?

AB-xdev avatar Sep 20 '24 09:09 AB-xdev

Thanks a lot for your in-depth investigation.

Do you have anything active inside Settings > Tools > Actions on Save?

Yes: image

Do you commit using the IDE or are you using an external app like "GtiHub Desktop"?

I'm using the IDE only.

Is the problem gone if you invalidate the IDE cache (File > Invalidate Caches -> Tick "Clear file system..." and "Clear VCS Log...")?

Sorry, I can't tell. I avoid invalidation of the file system cache because it erases local history. I could Clear VCS Log caches and indexes if that helps analyzing the problem.

The exception seems to be without impact on the IDE, so it's no problem for me to wait for 2024.3 and see if the upstream changes fix the problem as supposed.

vb-chris avatar Sep 20 '24 10:09 vb-chris

Do you have anything active inside Settings > Tools > Actions on Save?

Yes:

That's an image of our Save Action plugin (not the IntelliJ built-in "Actions on Save"). Could you please recheck for "Actions on Save"?

Is the problem gone if you invalidate the IDE cache (File > Invalidate Caches -> Tick "Clear file system..." and "Clear VCS Log...")?

Sorry, I can't tell. I avoid invalidation of the file system cache because it erases local history. I could Clear VCS Log caches and indexes if that helps analyzing the problem.

The exception seems to be without impact on the IDE, so it's no problem for me to wait for 2024.3 and see if the upstream changes fix the problem as supposed.

I suspect that due to some reason IntellJ believes that some files are currently being committed during startup. Maybe the IDE crashed during a commit once or something like this. Clearing VCS cache only should also do the job.

AB-xdev avatar Sep 20 '24 11:09 AB-xdev

So before I vanish into the weekend: I also deployed a new snapshot of the plugin. This should fix the project load / startup problem. You may check it out, maybe it helps :)

AB-xdev avatar Sep 20 '24 12:09 AB-xdev

Could you please recheck for "Actions on Save"?

Sorry, I mixed that up. All checkboxes in Actions on Save are disabled.

The error didn't occur anymore since I reported this issue. I will clear the VCS cache and keep an eye on it. When the error happens to occur again, I'll try the plugin snapshot you posted and report back.

vb-chris avatar Sep 23 '24 12:09 vb-chris

Closing for now since the problem no longer occurs.

Please reopen or create a new issue once it happens again.


I also added a short section about this error to the Usage-Guide.

AB-xdev avatar Oct 07 '24 08:10 AB-xdev