dubreuia / intellij-plugin-save-actions

Supports configurable, Eclipse like, save actions, including "organize imports", "reformat code" and "rearrange code".
MIT License
529 stars 102 forks source link

Save Action caused a exception and IDE froze #379

Open manivelpvn opened 3 years ago

manivelpvn commented 3 years ago

Running Save action caused an exception with Intellij CE 2021.1.

What triggered the plugin Frame deactivation (window loses focus), CTRL+SHIFT+S, CTRL+S, etc.

Versions IntelliJ IDEA 2021.1.3 (Ultimate Edition) Build #IU-211.7628.21, built on June 30, 2021 Licensed to Cibisakaravarthi SR You have a perpetual fallback license for this version. Subscription is active until May 31, 2022. Runtime version: 11.0.11+9-b1341.60 x86_64 VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o. macOS 10.15.7 GC: ParNew, ConcurrentMarkSweep Memory: 9916M Cores: 12 Non-Bundled Plugins: DBN (3.2.4397.0), com.dubreuia (2.2.0), com.github.setial (4.0.2), MavenRunHelper (4.13.203.000.0), lermitage.intellij.extra.icons (1.57.0.203), com.dmarcotte.handlebars (211.6693.44), org.jetbrains.kotlin (211-1.5.20-release-284-IJ7442.40), org.mapstruct.intellij (1.2.4) Kotlin: 211-1.5.20-release-284-IJ7442.40

Exception Refactorings should not be started inside write action because they start progress inside and any read action from the progress task would cause the deadlock

java.lang.Exception at com.intellij.refactoring.BaseRefactoringProcessor.run(BaseRefactoringProcessor.java:646) at com.siyeh.ig.performance.MethodMayBeStaticInspection$1.doFix(MethodMayBeStaticInspection.java:66) at com.siyeh.ig.InspectionGadgetsFix.applyFix(InspectionGadgetsFix.java:39) at com.siyeh.ig.InspectionGadgetsFix.applyFix(InspectionGadgetsFix.java:26) at com.dubreuia.processors.java.InspectionRunnable.writeQuickFixes(InspectionRunnable.java:96) at com.dubreuia.processors.java.InspectionRunnable.run(InspectionRunnable.java:71) at com.dubreuia.processors.SaveWriteCommand$1.run(SaveWriteCommand.java:57) at com.intellij.openapi.application.RunResult.run(RunResult.java:36) at com.intellij.openapi.command.WriteCommandAction.lambda$performWriteCommandAction$1(WriteCommandAction.java:266) at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:959) at com.intellij.openapi.command.WriteCommandAction.lambda$performWriteCommandAction$2(WriteCommandAction.java:265) at com.intellij.openapi.command.WriteCommandAction.lambda$doExecuteCommand$3(WriteCommandAction.java:295) at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:216) at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:182) at com.intellij.openapi.command.WriteCommandAction.doExecuteCommand(WriteCommandAction.java:297) at com.intellij.openapi.command.WriteCommandAction.performWriteCommandAction(WriteCommandAction.java:265) at com.intellij.openapi.command.WriteCommandAction.execute(WriteCommandAction.java:246) at com.dubreuia.processors.SaveWriteCommand.execute(SaveWriteCommand.java:60) at com.dubreuia.core.component.Engine.lambda$processPsiFiles$5(Engine.java:106) at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195) at java.base/java.util.stream.ReferencePipeline$11$1.accept(ReferencePipeline.java:442) at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1655) 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.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913) at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578) at com.dubreuia.core.component.Engine.processPsiFiles(Engine.java:107) at com.dubreuia.core.component.Engine.processPsiFilesIfNecessary(Engine.java:90) at com.dubreuia.core.component.SaveActionManager.guardedProcessPsiFiles(SaveActionManager.java:169) at com.dubreuia.core.component.SaveActionManager.lambda$beforeDocumentsSaving$3(SaveActionManager.java:153) at java.base/java.util.HashMap.forEach(HashMap.java:1336) at com.dubreuia.core.component.SaveActionManager.beforeDocumentsSaving(SaveActionManager.java:152) at com.dubreuia.core.component.SaveActionManager.beforeAllDocumentsSaving(SaveActionManager.java:137) at com.intellij.util.messages.impl.MessageBusImpl.invokeMethod(MessageBusImpl.java:671) at com.intellij.util.messages.impl.MessageBusImpl.invokeListener(MessageBusImpl.java:649) at com.intellij.util.messages.impl.MessageBusImpl.deliverMessage(MessageBusImpl.java:422) at com.intellij.util.messages.impl.MessageBusImpl.pumpWaitingBuses(MessageBusImpl.java:397) at com.intellij.util.messages.impl.MessageBusImpl.pumpMessages(MessageBusImpl.java:379) at com.intellij.util.messages.impl.MessageBusImpl.access$100(MessageBusImpl.java:33) at com.intellij.util.messages.impl.MessageBusImpl$MessagePublisher.invoke(MessageBusImpl.java:185) at com.sun.proxy.$Proxy24.beforeAllDocumentsSaving(Unknown Source) at jdk.internal.reflect.GeneratedMethodAccessor164.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl.multiCast(FileDocumentManagerImpl.java:174) at com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl.lambda$new$0(FileDocumentManagerImpl.java:129) at com.sun.proxy.$Proxy24.beforeAllDocumentsSaving(Unknown Source) at com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl.saveDocuments(FileDocumentManagerImpl.java:271) at com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl.saveAllDocuments(FileDocumentManagerImpl.java:259) at com.intellij.configurationStore.SaveAndSyncHandlerImpl$addListeners$3.onFrameDeactivated(SaveAndSyncHandlerImpl.kt:148) at com.intellij.util.messages.impl.MessageBusImpl.invokeMethod(MessageBusImpl.java:671) at com.intellij.util.messages.impl.MessageBusImpl.invokeListener(MessageBusImpl.java:649) at com.intellij.util.messages.impl.MessageBusImpl.deliverMessage(MessageBusImpl.java:422) at com.intellij.util.messages.impl.MessageBusImpl.pumpWaitingBuses(MessageBusImpl.java:397) at com.intellij.util.messages.impl.MessageBusImpl.pumpMessages(MessageBusImpl.java:379) at com.intellij.util.messages.impl.MessageBusImpl.access$100(MessageBusImpl.java:33) at com.intellij.util.messages.impl.MessageBusImpl$MessagePublisher.invoke(MessageBusImpl.java:185) at com.sun.proxy.$Proxy34.onFrameDeactivated(Unknown Source) at com.intellij.ide.FrameStateManagerImpl$2.applicationDeactivated(FrameStateManagerImpl.java:57) at com.intellij.util.messages.impl.MessageBusImpl.invokeMethod(MessageBusImpl.java:674) at com.intellij.util.messages.impl.MessageBusImpl.invokeListener(MessageBusImpl.java:649) at com.intellij.util.messages.impl.MessageBusImpl.deliverMessage(MessageBusImpl.java:422) at com.intellij.util.messages.impl.MessageBusImpl.pumpWaitingBuses(MessageBusImpl.java:397) at com.intellij.util.messages.impl.MessageBusImpl.pumpMessages(MessageBusImpl.java:379) at com.intellij.util.messages.impl.MessageBusImpl.access$100(MessageBusImpl.java:33) at com.intellij.util.messages.impl.MessageBusImpl$MessagePublisher.invoke(MessageBusImpl.java:185) at com.sun.proxy.$Proxy45.applicationDeactivated(Unknown Source) at com.intellij.ide.ApplicationActivationStateManager.updateState(ApplicationActivationStateManager.java:61) at com.intellij.ide.IdeEventQueue.processAppActivationEvent(IdeEventQueue.java:937) at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:780) at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:449) at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:797) at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$9(IdeEventQueue.java:448) at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:781) at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:502) at java.desktop/java.awt.SentEvent.dispatch(SentEvent.java:70) at java.desktop/java.awt.DefaultKeyboardFocusManager$DefaultKeyboardFocusManagerSentEvent.dispatch(DefaultKeyboardFocusManager.java:254) at java.desktop/java.awt.DefaultKeyboardFocusManager.sendMessage(DefaultKeyboardFocusManager.java:281) at java.desktop/java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:825) at com.intellij.ide.IdeKeyboardFocusManager.dispatchEvent(IdeKeyboardFocusManager.java:42) at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:4908) at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321) at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2784) at java.desktop/java.awt.Component.dispatchEvent(Component.java:4859) at java.desktop/sun.lwawt.LWWindowPeer.lambda$changeFocusedWindow$8(LWWindowPeer.java:1394) at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:776) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95) at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:751) at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:749) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:748) at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:969) at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:839) at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:449) at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:808) at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$9(IdeEventQueue.java:448) at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:781) at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:502) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)