dubreuia/intellij-plugin-save-actions

IllegalStateException: Attempt to modify PSI for non-committed Document!

carlmolemans opened this issue · 3 comments

Describe the bug
java.lang.IllegalStateException: Attempt to modify PSI for non-committed Document!
at com.intellij.pom.core.impl.PomModelImpl.startTransaction(PomModelImpl.java:266)
at com.intellij.pom.core.impl.PomModelImpl.lambda$runTransaction$2(PomModelImpl.java:96)
at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:705)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:647)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:63)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeNonCancelableSection(CoreProgressManager.java:223)
at com.intellij.pom.core.impl.PomModelImpl.runTransaction(PomModelImpl.java:93)
at com.intellij.psi.impl.source.tree.ChangeUtil.prepareAndRunChangeAction(ChangeUtil.java:142)
at com.intellij.psi.impl.source.tree.CompositeElement.addChild(CompositeElement.java:579)
at com.intellij.psi.impl.source.tree.CompositeElement.addChildren(CompositeElement.java:673)
at com.intellij.psi.impl.source.codeStyle.CodeEditUtil.addChildren(CodeEditUtil.java:53)
at com.intellij.psi.impl.source.tree.CompositeElement.addInternal(CompositeElement.java:447)
at com.intellij.psi.impl.source.tree.java.ModifierListElement.addInternal(ModifierListElement.java:47)
at com.intellij.psi.impl.source.PsiModifierListImpl.setModifierProperty(PsiModifierListImpl.java:271)
at com.intellij.psi.util.PsiUtil.setModifierProperty(PsiUtil.java:1170)
at com.intellij.codeInspection.localCanBeFinal.LocalCanBeFinal$AcceptSuggested.applyFix(LocalCanBeFinal.java:327)
at com.intellij.codeInspection.localCanBeFinal.LocalCanBeFinal$AcceptSuggested.applyFix(LocalCanBeFinal.java:313)
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:22)
at com.intellij.openapi.command.WriteCommandAction.lambda$performWriteCommandAction$1(WriteCommandAction.java:267)
at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:936)
at com.intellij.openapi.command.WriteCommandAction.lambda$performWriteCommandAction$2(WriteCommandAction.java:266)
at com.intellij.openapi.command.WriteCommandAction.lambda$doExecuteCommand$3(WriteCommandAction.java:296)
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:298)
at com.intellij.openapi.command.WriteCommandAction.performWriteCommandAction(WriteCommandAction.java:266)
at com.intellij.openapi.command.WriteCommandAction.execute(WriteCommandAction.java:247)
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:642)
at com.intellij.util.messages.impl.MessageBusImpl.invokeListener(MessageBusImpl.java:620)
at com.intellij.util.messages.impl.MessageBusImpl.deliverMessage(MessageBusImpl.java:417)
at com.intellij.util.messages.impl.MessageBusImpl.pumpWaitingBuses(MessageBusImpl.java:390)
at com.intellij.util.messages.impl.MessageBusImpl.pumpMessages(MessageBusImpl.java:372)
at com.intellij.util.messages.impl.MessageBusImpl.access$200(MessageBusImpl.java:33)
at com.intellij.util.messages.impl.MessageBusImpl$MessagePublisher.invoke(MessageBusImpl.java:179)
at com.sun.proxy.$Proxy14.beforeAllDocumentsSaving(Unknown Source)
at jdk.internal.reflect.GeneratedMethodAccessor234.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.$Proxy14.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.openapi.fileEditor.impl.FileDocumentManagerImpl.saveAllDocuments(FileDocumentManagerImpl.java:252)
at com.intellij.ide.actions.SaveAllAction.actionPerformed(SaveAllAction.kt:24)
at com.intellij.openapi.keymap.impl.ActionProcessor.performAction(ActionProcessor.java:65)
at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher$1.performAction(IdeKeyEventDispatcher.java:563)
at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.lambda$doPerformActionInner$8(IdeKeyEventDispatcher.java:677)
at com.intellij.openapi.actionSystem.ex.ActionUtil.performDumbAwareWithCallbacks(ActionUtil.java:261)
at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.doPerformActionInner(IdeKeyEventDispatcher.java:670)
at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.processAction(IdeKeyEventDispatcher.java:603)
at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.processAction(IdeKeyEventDispatcher.java:574)
at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.processActionOrWaitSecondStroke(IdeKeyEventDispatcher.java:457)
at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.inInitState(IdeKeyEventDispatcher.java:450)
at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.dispatchKeyEvent(IdeKeyEventDispatcher.java:218)
at com.intellij.ide.IdeEventQueue.dispatchKeyEvent(IdeEventQueue.java:800)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:750)
at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$7(IdeEventQueue.java:443)
at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:825)
at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:442)
at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:794)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:494)
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)

What triggered the plugin
Opening a project

Versions
IntelliJ IDEA 2021.2.1 (Ultimate Edition)
Build #IU-212.5080.55, built on August 24, 2021
Licensed to HealthConnect NV / Carl Molemans
Subscription is active until January 17, 2022.
Runtime version: 11.0.11+9-b1504.16 amd64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
Windows 10 10.0
GC: G1 Young Generation, G1 Old Generation
Memory: 8192M
Cores: 8
Non-Bundled Plugins: com.intellij.properties.bundle.editor (212.4746.57), EclipseCodeFormatter (20.9.203.000.0-Eclipse_2020-06-JavaOnly), woaini.liquibase.plugin (1.3-SNAPSHOT), CheckStyle-IDEA (5.55.1), com.intellij.guice (212.5080.8), com.dubreuia (2.2.0), com.crunch42.openapi (1.22), MavenRunHelper (4.15.212.000.0), mobi.hsz.idea.gitignore (4.2.0), org.asciidoctor.intellij.asciidoc (0.33.19), intellij.prettierJS (212.5080.8), Pythonid (212.5080.64), com.intellij.selenium (212.5080.8), com.haulmont.jpab (5.3-212), PlantUML integration (5.5.1)
Kotlin: 212-1.5.10-release-IJ5080.55

Save Actions: 2.2.0

Same problem, when it build a project (is not always happen).

Same as #379