diff --git a/core/src/main/java/org/apache/struts2/util/TextProviderHelper.java b/core/src/main/java/org/apache/struts2/util/TextProviderHelper.java index 1c19a2f03..c6e9679b8 100644 --- a/core/src/main/java/org/apache/struts2/util/TextProviderHelper.java +++ b/core/src/main/java/org/apache/struts2/util/TextProviderHelper.java @@ -23,6 +23,7 @@ package org.apache.struts2.util; import com.opensymphony.xwork2.TextProvider; import com.opensymphony.xwork2.util.ValueStack; +import org.apache.commons.lang3.StringEscapeUtils; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -86,6 +87,9 @@ public class TextProviderHelper { if (msg == null) { // use the defaultMessage literal value msg = defaultMessage; + msg = StringEscapeUtils.escapeEcmaScript(msg); + msg = StringEscapeUtils.escapeHtml4(msg); + LOG.debug("Message for key '{}' is null, returns escaped default message [{}]", key, msg); } if (LOG.isWarnEnabled()) { diff --git a/core/src/test/java/org/apache/struts2/views/jsp/TextTagTest.java b/core/src/test/java/org/apache/struts2/views/jsp/TextTagTest.java index 729ecafc3..661acd32e 100644 --- a/core/src/test/java/org/apache/struts2/views/jsp/TextTagTest.java +++ b/core/src/test/java/org/apache/struts2/views/jsp/TextTagTest.java @@ -274,7 +274,7 @@ public class TextTagTest extends AbstractTagTest { public void testWithNoMessageAndNoDefaultKeyReturned() throws JspException { final String key = "key.does.not.exist"; - tag.setName("'" + key + "'"); + tag.setName(key); tag.doStartTag(); tag.doEndTag(); assertEquals(key, writer.toString());