Parcourir la source

HADOOP-12172. FsShell mkdir -p makes an unnecessary check for the existence of the parent. Contributed by Chris Nauroth.

(cherry picked from commit f3796224bfdfd88e2428cc8a9915bdfdc62b48f3)
cnauroth il y a 10 ans
Parent
commit
0d94a293a8

+ 3 - 0
hadoop-common-project/hadoop-common/CHANGES.txt

@@ -201,6 +201,9 @@ Release 2.8.0 - UNRELEASED
     HADOOP-12112. Make hadoop-common-project Native code -Wall-clean
     HADOOP-12112. Make hadoop-common-project Native code -Wall-clean
     (alanburlison via cmccabe)
     (alanburlison via cmccabe)
 
 
+    HADOOP-12172. FsShell mkdir -p makes an unnecessary check for the existence
+    of the parent. (cnauroth)
+
   BUG FIXES
   BUG FIXES
 
 
     HADOOP-11802: DomainSocketWatcher thread terminates sometimes after there
     HADOOP-11802: DomainSocketWatcher thread terminates sometimes after there

+ 2 - 1
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 {
   protected void processNonexistentPath(PathData item) throws IOException {
     // check if parent exists. this is complicated because getParent(a/b/c/) returns a/b/c, but
     // check if parent exists. this is complicated because getParent(a/b/c/) returns a/b/c, but
     // we want a/b
     // 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());
       throw new PathNotFoundException(item.toString());
     }
     }
     if (!item.fs.mkdirs(item.path)) {
     if (!item.fs.mkdirs(item.path)) {