[
https://issues.apache.org/jira/browse/CXF-3855?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13136963#comment-13136963
]
Aki Yoshida commented on CXF-3855:
----------------------------------
The unit test for this patch seems to fail on windows because of the windows
specific directory prefix automatically added by URI.getAbsolutePath() in
assertEquals(orig, new File(new URI("file:" + s)).getAbsolutePath());
resulting in:
Running org.apache.cxf.tools.util.URIParserUtilTest
Tests run: 4, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.002 sec <<<
FAILURE!
testCXF3855(org.apache.cxf.tools.util.URIParserUtilTest) Time elapsed: 0.001
sec <<< FAILURE!
org.junit.ComparisonFailure: expected:<[/]foo?.txt> but was:<[C:\]foo?.txt>
We should change this assertion line to:
assertEquals(orig, URLDecoder.decode(s, "UTF-8"));
> 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
> Assignee: Daniel Kulp
> Priority: Minor
> Labels: parse, utf-8, util
> Fix For: 2.3.8, 2.4.4
>
>
> 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.
> {noformat}
> --- 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
> }
> {noformat}
--
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