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 =