To chime in: it's a really, really, bad idea for non-file URLs, as it can violate stringprep.
For file URLs, it is an attempt to deal, with non-NFC (or NFKC) strings in the URL failing to match the file system. However, file system normalization is platform-dependendent. Linux does none at all, for example. So it's not safe in general. On Fri, Jul 30, 2010 at 9:50 PM, Glen Mazza <[email protected]> wrote: > May I ask why this normalization is helpful (instead of just using the > intended file path to being with)? > Does this affect just internal CXF use or external usage by users of CXF? > If the latter, the potential problem I see is that not all URI's are file > paths and, even if they were, I'm not sure that you can safely normalize in > a platform-independent manner. > > Glen > > [email protected] wrote: >> >> Author: ema >> Date: Fri Jul 30 16:07:40 2010 >> New Revision: 980880 >> >> URL: http://svn.apache.org/viewvc?rev=980880&view=rev >> Log: >> [CXF-2918]:normalize the url like file:/home/cxf/org/apache/../../cxf in >> URIParserUtil.getAbsoluteURL() >> >> Modified: >> >> cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/util/URIParserUtil.java >> >> cxf/trunk/tools/common/src/test/java/org/apache/cxf/tools/util/URIParserUtilTest.java >> >> Modified: >> cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/util/URIParserUtil.java >> URL: >> http://svn.apache.org/viewvc/cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/util/URIParserUtil.java?rev=980880&r1=980879&r2=980880&view=diff >> >> ============================================================================== >> --- >> cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/util/URIParserUtil.java >> (original) >> +++ >> cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/util/URIParserUtil.java >> Fri Jul 30 16:07:40 2010 >> @@ -248,18 +248,15 @@ public final class URIParserUtil { >> } >> public static String normalize(final String uri) { >> URL url = null; >> + String result = null; >> try { >> url = new URL(uri); >> - return escapeChars(url.toString().replace("\\", "/")); >> + result = >> escapeChars(url.toURI().normalize().toString().replace("\\", "/")); >> > > >
