Browse Source

HDFS-11098. Datanode in tests cannot start in Windows after HDFS-10638 (Contributed by Vinayakumar B)

Vinayakumar B 8 years ago
parent
commit
69dd5fa2d4

+ 5 - 2
hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/StorageLocation.java

@@ -62,8 +62,11 @@ public class StorageLocation implements Comparable<StorageLocation>{
       // make sure all URIs that point to a file have the same scheme
       try {
         File uriFile = new File(uri.getPath());
-        String absPath = uriFile.getAbsolutePath();
-        uri = new URI("file", null, absPath, uri.getQuery(), uri.getFragment());
+        String uriStr = uriFile.toURI().normalize().toString();
+        if (uriStr.endsWith("/")) {
+          uriStr = uriStr.substring(0, uriStr.length() - 1);
+        }
+        uri = new URI(uriStr);
       } catch (URISyntaxException e) {
         throw new IllegalArgumentException(
             "URI: " + uri + " is not in the expected format");