Incorrect character escaping by URIParserUtil
---------------------------------------------
Key: CXF-3855
URL: https://issues.apache.org/jira/browse/CXF-3855
Project: CXF
Issue Type: Bug
Components: Tooling
Affects Versions: 2.4.2
Reporter: Jenya Pisarenko
Priority: Minor
Class URIParserUtil. Function escapeChars(String s) produces incorrect result
for characters, which utf-8 representation is greater than 1 byte length.
For example, character "ц" ([-47, -122] in utf-8) is encoded as "%d861", but
expected value is "%d186".
This patch should fix the problem.
--- URIParserUtil.java 2011-10-11 18:02:59.786548800 +0400
+++ URIParserUtil.java 2011-10-11 18:03:09.544548800 +0400
@@ -236,8 +236,9 @@
b.setCharAt(x++, '%');
for (int y = 0; y < bytes.length; y++) {
b.insert(x++, HEX_DIGITS.charAt((bytes[y] & 0xFF) >>
4));
- b.insert(x, HEX_DIGITS.charAt(bytes[y] & 0x0F));
+ b.insert(x++, HEX_DIGITS.charAt(bytes[y] & 0x0F));
}
+ x--;
} catch (UnsupportedEncodingException e) {
//should not happen
}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira