From dce504b013875d2c0c42e8ff8467b1b6a9b9d2e5 Mon Sep 17 00:00:00 2001 From: Dmitry Avdeev Date: Mon, 22 Oct 2018 20:25:28 +0300 Subject: [PATCH] EA-117772 - assert: DefaultXmlPsiPolicy.encodeXmlTextContents --- xml/tests/src/com/intellij/xml/XmlModificationsTest.java | 9 +++++++++ .../impl/source/xml/behavior/DefaultXmlPsiPolicy.java | 3 +++ 2 files changed, 12 insertions(+) diff --git a/xml/tests/src/com/intellij/xml/XmlModificationsTest.java b/xml/tests/src/com/intellij/xml/XmlModificationsTest.java index 4c647e73d416..5d828498fc91 100644 --- a/xml/tests/src/com/intellij/xml/XmlModificationsTest.java +++ b/xml/tests/src/com/intellij/xml/XmlModificationsTest.java @@ -3,6 +3,7 @@ package com.intellij.xml; import com.intellij.psi.XmlElementFactory; import com.intellij.psi.xml.XmlTag; +import com.intellij.psi.xml.XmlText; import com.intellij.testFramework.PsiTestCase; public class XmlModificationsTest extends PsiTestCase { @@ -42,4 +43,12 @@ public class XmlModificationsTest extends PsiTestCase { tag.add(tag.createChildTag("b", "", null, false)); assertEquals("", tag.getText()); } + + public void testSetText() { + final XmlTag tag = myFactory.createTagFromText("foo"); + XmlText[] elements = tag.getValue().getTextElements(); + assertEquals(1, elements.length); + elements[0].setValue(""); + assertEquals("", tag.getText()); + } } diff --git a/xml/xml-psi-impl/src/com/intellij/psi/impl/source/xml/behavior/DefaultXmlPsiPolicy.java b/xml/xml-psi-impl/src/com/intellij/psi/impl/source/xml/behavior/DefaultXmlPsiPolicy.java index a371ed1a933b..b2f963774178 100644 --- a/xml/xml-psi-impl/src/com/intellij/psi/impl/source/xml/behavior/DefaultXmlPsiPolicy.java +++ b/xml/xml-psi-impl/src/com/intellij/psi/impl/source/xml/behavior/DefaultXmlPsiPolicy.java @@ -36,6 +36,9 @@ public class DefaultXmlPsiPolicy implements XmlPsiPolicy{ @Override public ASTNode encodeXmlTextContents(String displayText, PsiElement text) { + if (displayText.isEmpty()) { + return null; + } CharTable charTable = SharedImplUtil.findCharTableByTree(text.getNode()); final FileElement dummyParent = DummyHolderFactory.createHolder(text.getManager(), null, charTable).getTreeElement(); final XmlTag rootTag =