Author: peterreilly Date: Wed Apr 19 03:50:02 2006 New Revision: 395206 URL: http://svn.apache.org/viewcvs?rev=395206&view=rev Log: escape none URL characters
Modified: ant/core/trunk/src/main/org/apache/tools/ant/launch/Locator.java Modified: ant/core/trunk/src/main/org/apache/tools/ant/launch/Locator.java URL: http://svn.apache.org/viewcvs/ant/core/trunk/src/main/org/apache/tools/ant/launch/Locator.java?rev=395206&r1=395205&r2=395206&view=diff ============================================================================== --- ant/core/trunk/src/main/org/apache/tools/ant/launch/Locator.java (original) +++ ant/core/trunk/src/main/org/apache/tools/ant/launch/Locator.java Wed Apr 19 03:50:02 2006 @@ -401,7 +401,20 @@ String path = location.getPath(); for (int i = 0; i < extensions.length; ++i) { if (path.toLowerCase().endsWith(extensions[i])) { - urls[0] = location.toURL(); + try { + /** + * File.toURL() does not encode characters like #. + * File.toURI() has been introduced in java 1.4, so + * ANT cannot use it (except by reflection) + * FileUtils.toURI() cannot be used by Locator.java + * Implemented this way. + * File.toURL() adds file: and changes '\' to '/' for dos OSes + * encodeUri converts characters like ' ' and '#' to %DD + */ + urls[0] = new URL(encodeUri(location.toURL().toString())); + } catch (UnsupportedEncodingException ex) { + throw new MalformedURLException(ex.toString()); + } break; } } @@ -420,7 +433,12 @@ }); urls = new URL[matches.length]; for (int i = 0; i < matches.length; ++i) { - urls[i] = matches[i].toURL(); + try { + // See comments above. + urls[i] = new URL(encodeUri(matches[i].toURL().toString())); + } catch (UnsupportedEncodingException ex) { + throw new MalformedURLException(ex.toString()); + } } return urls; } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]