HADOOP-12172. FsShell mkdir -p makes an unnecessary check for the existence of the parent. Contributed by Chris Nauroth.
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/a8a65745 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/a8a65745 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/a8a65745 Branch: refs/heads/YARN-2928 Commit: a8a65745c40bc662065e140664062ca7dad3b9f2 Parents: 6f530f5 Author: cnauroth <[email protected]> Authored: Wed Jul 1 19:47:58 2015 -0700 Committer: Zhijie Shen <[email protected]> Committed: Mon Jul 6 11:32:01 2015 -0700 ---------------------------------------------------------------------- hadoop-common-project/hadoop-common/CHANGES.txt | 3 +++ .../src/main/java/org/apache/hadoop/fs/shell/Mkdir.java | 3 ++- 2 files changed, 5 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/a8a65745/hadoop-common-project/hadoop-common/CHANGES.txt ---------------------------------------------------------------------- diff --git a/hadoop-common-project/hadoop-common/CHANGES.txt b/hadoop-common-project/hadoop-common/CHANGES.txt index 24431ba..312a996 100644 --- a/hadoop-common-project/hadoop-common/CHANGES.txt +++ b/hadoop-common-project/hadoop-common/CHANGES.txt @@ -704,6 +704,9 @@ Release 2.8.0 - UNRELEASED HADOOP-12112. Make hadoop-common-project Native code -Wall-clean (alanburlison via cmccabe) + HADOOP-12172. FsShell mkdir -p makes an unnecessary check for the existence + of the parent. (cnauroth) + BUG FIXES HADOOP-11802: DomainSocketWatcher thread terminates sometimes after there http://git-wip-us.apache.org/repos/asf/hadoop/blob/a8a65745/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/shell/Mkdir.java ---------------------------------------------------------------------- diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/shell/Mkdir.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/shell/Mkdir.java index 74bad62..9f39da2 100644 --- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/shell/Mkdir.java +++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/shell/Mkdir.java @@ -70,7 +70,8 @@ class Mkdir extends FsCommand { protected void processNonexistentPath(PathData item) throws IOException { // check if parent exists. this is complicated because getParent(a/b/c/) returns a/b/c, but // we want a/b - if (!item.fs.exists(new Path(item.path.toString()).getParent()) && !createParents) { + if (!createParents && + !item.fs.exists(new Path(item.path.toString()).getParent())) { throw new PathNotFoundException(item.toString()); } if (!item.fs.mkdirs(item.path)) {
