From 8aa18db91e1ec639b4829d19f2b5b31767fa02aa Mon Sep 17 00:00:00 2001 From: Alexey Kudravtsev Date: Wed, 11 May 2011 13:39:03 +0400 Subject: [PATCH] http://ea.jetbrains.com/browser/ea_problems/27718 --- .../fileEditor/impl/FileDocumentManagerImpl.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/FileDocumentManagerImpl.java b/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/FileDocumentManagerImpl.java index e7abd37921a3..db7f37dea6e6 100644 --- a/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/FileDocumentManagerImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/FileDocumentManagerImpl.java @@ -139,7 +139,7 @@ public class FileDocumentManagerImpl extends FileDocumentManager implements Appl // avoid documents piling up during batch processing if (areTooManyDocumentsInTheQueue(myUnsavedDocuments)) { - saveAllDocuments(); + saveAllDocumentsLater(); } } } @@ -210,6 +210,18 @@ public class FileDocumentManagerImpl extends FileDocumentManager implements Appl myTrailingSpacesStripper.dropAll(); } + private void saveAllDocumentsLater() { + // later because some document might have been blocked by PSI right now + ApplicationManager.getApplication().invokeLater(new Runnable() { + @Override + public void run() { + if (!ApplicationManager.getApplication().isDisposed()) { + saveAllDocuments(); + } + } + }); + } + public void saveAllDocuments() { ApplicationManager.getApplication().assertIsDispatchThread();