From 466f93c8b6ccd88572025df79665f496f8367060 Mon Sep 17 00:00:00 2001 From: Tsz-wo Sze Date: Tue, 14 Jul 2009 17:39:33 +0000 Subject: [PATCH] HADOOP-6145. Fix FsShell rm/rmr error messages when there is a FNFE. Contributed by Jakob Homan git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@793987 13f79535-47bb-0310-9956-ffa450edef68 --- CHANGES.txt | 3 +++ src/java/org/apache/hadoop/fs/FsShell.java | 15 ++++++++++----- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index 8df1ba9d7b..051b310127 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1014,6 +1014,9 @@ Release 0.20.1 - Unreleased HADOOP-6139. Fix the FsShell help messages for rm and rmr. (Jakob Homan via szetszwo) + HADOOP-6145. Fix FsShell rm/rmr error messages when there is a FNFE. + (Jakob Homan via szetszwo) + Release 0.20.0 - 2009-04-15 INCOMPATIBLE CHANGES diff --git a/src/java/org/apache/hadoop/fs/FsShell.java b/src/java/org/apache/hadoop/fs/FsShell.java index 634da87da0..a032052966 100644 --- a/src/java/org/apache/hadoop/fs/FsShell.java +++ b/src/java/org/apache/hadoop/fs/FsShell.java @@ -1110,7 +1110,16 @@ public class FsShell extends Configured implements Tool { /* delete a file */ private void delete(Path src, FileSystem srcFs, boolean recursive, boolean skipTrash) throws IOException { - if (srcFs.isDirectory(src) && !recursive) { + FileStatus fs = null; + try { + fs = srcFs.getFileStatus(src); + } catch (FileNotFoundException fnfe) { + // Have to re-throw so that console output is as expected + throw new FileNotFoundException("cannot remove " + + src + ": No such file or directory."); + } + + if (fs.isDir() && !recursive) { throw new IOException("Cannot remove directory \"" + src + "\", use -rmr instead"); } @@ -1126,10 +1135,6 @@ public class FsShell extends Configured implements Tool { if (srcFs.delete(src, true)) { System.out.println("Deleted " + src); } else { - if (!srcFs.exists(src)) { - throw new FileNotFoundException("cannot remove " - + src + ": No such file or directory."); - } throw new IOException("Delete failed " + src); } }