From 328a1d267b3c008d9cd69cb237d0fa3f578b2f3d Mon Sep 17 00:00:00 2001 From: Alexey Kudravtsev Date: Wed, 23 Nov 2011 12:28:08 +0400 Subject: [PATCH] crash in injectors in multiroot files during PSI modification of the main root --- .../src/com/intellij/psi/impl/PsiDocumentManagerImpl.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/platform/lang-impl/src/com/intellij/psi/impl/PsiDocumentManagerImpl.java b/platform/lang-impl/src/com/intellij/psi/impl/PsiDocumentManagerImpl.java index bf3eca1e8b6d..3ce6ebc02c86 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/PsiDocumentManagerImpl.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/PsiDocumentManagerImpl.java @@ -371,7 +371,10 @@ public class PsiDocumentManagerImpl extends PsiDocumentManager implements Projec }); if (ok[0]) { - ((InjectedLanguageManagerImpl)InjectedLanguageManager.getInstance(myProject)).startRunInjectors(document, synchronously); + // otherwise changes maybe not synced to the document yet, and injectors will crash + if (!mySynchronizer.isDocumentAffectedByTransactions(document)) { + ((InjectedLanguageManagerImpl)InjectedLanguageManager.getInstance(myProject)).startRunInjectors(document, synchronously); + } // run after commit actions outside write action runAfterCommitActions(document); if (DebugUtil.DO_EXPENSIVE_CHECKS) {