JavascriptUtils.encodeString does not properly translate '\' characters into
"\\" (2) characters
------------------------------------------------------------------------------------------------
Key: MYFACES-1818
URL: https://issues.apache.org/jira/browse/MYFACES-1818
Project: MyFaces Core
Issue Type: Bug
Components: General
Affects Versions: 1.2.2, 1.1.5
Environment: Standard
Reporter: Nicholas Hagen
JavascriptUtils.encodeString does not properly translate a single '\' backslash
char into two "\\" backslash characters in order to properly escape the
Javascript string. The fix should be:
public static String encodeString(String string)
{
if (string == null)
{
return "";
}
StringBuffer sb = null; //create later on demand
String app;
char c;
for (int i = 0; i < string.length (); ++i)
{
app = null;
c = string.charAt(i);
switch (c)
{
case '\\' : app = "\\\\"; break; // NJH - Use double backslash
as output for single backslash rather than single backslash for single
backslash
case '"' : app = "\\\""; break;
case '\'' : app = "\\'"; break;
case '\n' : app = "\\n"; break;
case '\r' : app = "\\r"; break;
}
if (app != null)
{
if (sb == null)
{
sb = new StringBuffer(string.substring(0, i));
}
sb.append(app);
} else {
if (sb != null)
{
sb.append(c);
}
}
}
if (sb == null)
{
return string;
}
else
{
return sb.toString();
}
}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.