From d8b6fa309be98e4caea6691f6f19d0acd75fdc16 Mon Sep 17 00:00:00 2001 From: peter Date: Mon, 26 Feb 2018 14:23:19 +0100 Subject: [PATCH] guard against invalid context during reparse (EA-116336 - PIEAE: LeafPsiElement.invalid) --- .../com/intellij/psi/impl/source/text/BlockSupportImpl.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/platform/core-impl/src/com/intellij/psi/impl/source/text/BlockSupportImpl.java b/platform/core-impl/src/com/intellij/psi/impl/source/text/BlockSupportImpl.java index aed3656102f3..d2c8f6bf844d 100644 --- a/platform/core-impl/src/com/intellij/psi/impl/source/text/BlockSupportImpl.java +++ b/platform/core-impl/src/com/intellij/psi/impl/source/text/BlockSupportImpl.java @@ -211,7 +211,8 @@ public class BlockSupportImpl extends BlockSupport { @NotNull CharSequence lastCommittedText) { if (fileImpl instanceof PsiCodeFragment) { FileElement parent = fileImpl.getTreeElement(); - final FileElement holderElement = new DummyHolder(fileImpl.getManager(), fileImpl.getContext()).getTreeElement(); + PsiElement context = fileImpl.getContext(); + FileElement holderElement = new DummyHolder(fileImpl.getManager(), context.isValid() ? context : null).getTreeElement(); holderElement.rawAddChildren(fileImpl.createContentLeafElement(holderElement.getCharTable().intern(newFileText, 0, newFileText.length()))); DiffLog diffLog = new DiffLog(); diffLog.appendReplaceFileElement(parent, (FileElement)holderElement.getFirstChildNode());