diff options
Diffstat (limited to 'gnu/java/net/protocol/jar/Handler.java')
| -rw-r--r-- | gnu/java/net/protocol/jar/Handler.java | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/gnu/java/net/protocol/jar/Handler.java b/gnu/java/net/protocol/jar/Handler.java index 726eb4404..9b3fa316b 100644 --- a/gnu/java/net/protocol/jar/Handler.java +++ b/gnu/java/net/protocol/jar/Handler.java @@ -1,5 +1,5 @@ /* gnu.java.net.protocol.jar.Handler - jar protocol handler for java.net - Copyright (C) 1999, 2002, 2003 Free Software Foundation, Inc. + Copyright (C) 1999, 2002, 2003, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -99,7 +99,7 @@ public class Handler extends URLStreamHandler file = file.substring (0, idx + 1) + url_string; } - else + else if (url_string.length() > 0) { int idx = file.lastIndexOf ("/"); if (idx == -1) //context path is weird @@ -156,14 +156,18 @@ public class Handler extends URLStreamHandler protected String toExternalForm (URL url) { String file = url.getFile(); + String ref = url.getRef(); // return "jar:" + file; // Performance!!: // Do the concatenation manually to avoid resize StringBuffer's - // internal buffer. + // internal buffer. The length of ref is not taken into consideration + // as it's a rare path. StringBuffer sb = new StringBuffer (file.length() + 5); sb.append ("jar:"); sb.append (file); + if (ref != null) + sb.append('#').append(ref); return sb.toString(); } } |
