< prev index next >

src/java.base/windows/classes/sun/nio/fs/WindowsPath.java

Print this page

        

@@ -241,17 +241,17 @@
         // Drive relative path ("C:foo" for example).
         if (isSameDrive(root, getFileSystem().defaultRoot())) {
             // relative to default directory
             String remaining = path.substring(root.length());
             String defaultDirectory = getFileSystem().defaultDirectory();
-            String result;
-            if (defaultDirectory.endsWith("\\")) {
-                result = defaultDirectory + remaining;
+            if (remaining.length() == 0) {
+                return defaultDirectory;
+            } else if (defaultDirectory.endsWith("\\")) {
+                 return defaultDirectory + remaining;
             } else {
-                result = defaultDirectory + "\\" + remaining;
+                return defaultDirectory + "\\" + remaining;
             }
-            return result;
         } else {
             // relative to some other drive
             String wd;
             try {
                 int dt = GetDriveType(root + "\\");

@@ -410,14 +410,16 @@
         for (int j=i; j<bn; j++) {
             result.append("..\\");
         }
 
         // append remaining names in child
+        if (!other.isEmpty()) {
         for (int j=i; j<cn; j++) {
             result.append(other.getName(j).toString());
             result.append("\\");
         }
+        }
 
         // drop trailing slash in result
         result.setLength(result.length()-1);
         return createFromNormalizedPath(getFileSystem(), result.toString());
     }
< prev index next >