Repository: hadoop Updated Branches: refs/heads/HADOOP-15461 bac459b3f -> d71df5aac
HADOOP-15629. Missing trimming in readlink in case of protocol. Contrbuted by Giovanni Matteo Fumarola Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/d71df5aa Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/d71df5aa Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/d71df5aa Branch: refs/heads/HADOOP-15461 Commit: d71df5aac9c7df9303cef7a5ba740bfe20958374 Parents: bac459b Author: Botong Huang <[email protected]> Authored: Thu Jul 26 21:35:13 2018 -0700 Committer: Botong Huang <[email protected]> Committed: Thu Jul 26 21:35:13 2018 -0700 ---------------------------------------------------------------------- .../java/org/apache/hadoop/fs/FileUtil.java | 21 +++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/d71df5aa/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FileUtil.java ---------------------------------------------------------------------- diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FileUtil.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FileUtil.java index bf3feb5..ab3d913 100644 --- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FileUtil.java +++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FileUtil.java @@ -30,7 +30,10 @@ import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.net.InetAddress; +import java.net.MalformedURLException; import java.net.URI; +import java.net.URISyntaxException; +import java.net.URL; import java.net.UnknownHostException; import java.nio.charset.Charset; import java.nio.file.AccessDeniedException; @@ -203,18 +206,26 @@ public class FileUtil { return ""; } - if (Files.isSymbolicLink(f.toPath())) { + // This will make sure we remove the protocol as file:// + java.nio.file.Path pathFile; + try { + pathFile = Paths.get(new URL(f.toString()).toURI()); + } catch (MalformedURLException | URISyntaxException e) { + pathFile = f.toPath(); + } + + if (Files.isSymbolicLink(pathFile)) { java.nio.file.Path p = null; try { - p = Files.readSymbolicLink(f.toPath()); + p = Files.readSymbolicLink(pathFile); } catch (Exception e) { - LOG.warn("Exception while reading the symbolic link " - + f.getAbsolutePath() + ". Exception= " + e.getMessage()); + LOG.warn("Exception while reading the symbolic link {}. Exception= {}", + f, e.getMessage()); return ""; } return p.toAbsolutePath().toString(); } - LOG.warn("The file " + f.getAbsolutePath() + " is not a symbolic link."); + LOG.warn("The file {} is not a symbolic link.", f); return ""; } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
