aboutsummaryrefslogtreecommitdiffstats
path: root/netx
diff options
context:
space:
mode:
Diffstat (limited to 'netx')
-rw-r--r--netx/net/sourceforge/jnlp/cache/ResourceTracker.java5
-rw-r--r--netx/net/sourceforge/jnlp/util/UrlUtils.java5
2 files changed, 6 insertions, 4 deletions
diff --git a/netx/net/sourceforge/jnlp/cache/ResourceTracker.java b/netx/net/sourceforge/jnlp/cache/ResourceTracker.java
index dffbb3b..7b6a772 100644
--- a/netx/net/sourceforge/jnlp/cache/ResourceTracker.java
+++ b/netx/net/sourceforge/jnlp/cache/ResourceTracker.java
@@ -390,7 +390,7 @@ public class ResourceTracker {
return resource.localFile;
if (location.getProtocol().equalsIgnoreCase("file")) {
- File file = new File(location.toURI().getPath());
+ File file = UrlUtils.decodeUrlAsFile(location);
if (file.exists())
return file;
}
@@ -401,9 +401,6 @@ public class ResourceTracker {
ex.printStackTrace();
return null; // need an error exception to throw
- } catch (URISyntaxException e) {
- e.printStackTrace();
- return null;
}
}
diff --git a/netx/net/sourceforge/jnlp/util/UrlUtils.java b/netx/net/sourceforge/jnlp/util/UrlUtils.java
index d9d6866..af36a9c 100644
--- a/netx/net/sourceforge/jnlp/util/UrlUtils.java
+++ b/netx/net/sourceforge/jnlp/util/UrlUtils.java
@@ -37,6 +37,7 @@ exception statement from your version.
package net.sourceforge.jnlp.util;
+import java.io.File;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.MalformedURLException;
@@ -134,4 +135,8 @@ public class UrlUtils {
return normalizeUrlQuietly(url, false);
}
+ /* Decode a URL as a file, being tolerant of URLs with mixed encoded & decoded portions. */
+ public static File decodeUrlAsFile(URL url) {
+ return new File(decodeUrlQuietly(url).getFile());
+ }
}