URLStreamHandler.java (parseURL): Canonicalize file portion of URL in addition to...
authorMohan Embar <gnustuff@thisiscool.com>
Tue, 6 Jul 2004 16:27:26 +0000 (16:27 +0000)
committerMohan Embar <membar@gcc.gnu.org>
Tue, 6 Jul 2004 16:27:26 +0000 (16:27 +0000)
* java/net/URLStreamHandler.java (parseURL): Canonicalize
file portion of URL in addition to spec for file: protocol.

From-SVN: r84157

libjava/ChangeLog
libjava/java/net/URLStreamHandler.java

index 66f3f41a1d7b1b327831c022e7bb1a646144cdb2..8299b732c5bcef9910c60874b0f0c1efcee4162e 100644 (file)
@@ -1,3 +1,8 @@
+2004-07-06  Mohan Embar  <gnustuff@thisiscool.com>
+
+       * java/net/URLStreamHandler.java (parseURL): Canonicalize
+       file portion of URL in addition to spec for file: protocol.
+
 2004-07-05  Anthony Green  <green@redhat.com>
        
        * java/io/File.java (toURI): Merge from Classpath.
index d224ff556e950e58da8db99578e76f12dc9e830d..5fef7ea909e0db96451dbb2aa01c59848f269930 100644 (file)
@@ -1,5 +1,5 @@
 /* URLStreamHandler.java -- Abstract superclass for all protocol handlers
-   Copyright (C) 1998, 1999, 2002, 2003 Free Software Foundation, Inc.
+   Copyright (C) 1998, 1999, 2002, 2003, 2004 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -131,8 +131,12 @@ public abstract class URLStreamHandler
     String query = null;
     
     // On Windows we need to change \ to / for file URLs
-    if (url.getProtocol().equals("file"))
-      spec = spec.replace(File.separatorChar, '/');
+    char separator = File.separatorChar;
+    if (url.getProtocol().equals("file") && separator != '/')
+      {
+       file = file.replace(separator, '/');
+       spec = spec.replace(separator, '/');
+      }
 
     if (spec.regionMatches(start, "//", 0, 2))
       {
@@ -216,7 +220,7 @@ public abstract class URLStreamHandler
              {
                boolean endsWithSlash = file.charAt(file.length() - 1) == '/';
                file = new File(file).getCanonicalPath();
-               file = file.replace(File.separatorChar, '/');
+               file = file.replace(separator, '/');
                if (endsWithSlash && file.charAt(file.length() - 1) != '/')
                  file += '/';
              }