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.

Reply via email to