From db20074a24385567131acd6a6fd226e4ce64ec6b Mon Sep 17 00:00:00 2001 From: Jacobus Martinus Kruithof Date: Tue, 19 Apr 2005 20:57:24 +0000 Subject: [PATCH] Avoid using of CharacterIterator for URIs that do not contain %, as suggested in pr34529. PR: 34529 git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@278152 13f79535-47bb-0310-9956-ffa450edef68 --- src/main/org/apache/tools/ant/launch/Locator.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/main/org/apache/tools/ant/launch/Locator.java b/src/main/org/apache/tools/ant/launch/Locator.java index 9689cdfc6..38ae18364 100644 --- a/src/main/org/apache/tools/ant/launch/Locator.java +++ b/src/main/org/apache/tools/ant/launch/Locator.java @@ -124,6 +124,20 @@ public final class Locator { && Character.isLetter(uri.charAt(1)) && uri.lastIndexOf(':') > -1) { uri = uri.substring(1); } + String path = decodeUri(uri); + return path; + } + + /** + * Decodes an Uri with % characters. + * @param uri String with the uri possibly containing % characters. + * @return The decoded Uri + */ + private static String decodeUri(String uri) { + if (uri.indexOf('%') == -1) + { + return uri; + } StringBuffer sb = new StringBuffer(); CharacterIterator iter = new StringCharacterIterator(uri); for (char c = iter.first(); c != CharacterIterator.DONE;