diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/tools/offlineImageViewer/PBImageTextWriter.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/tools/offlineImageViewer/PBImageTextWriter.java index 5a1644ca638..ee7839521a5 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/tools/offlineImageViewer/PBImageTextWriter.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/tools/offlineImageViewer/PBImageTextWriter.java @@ -20,7 +20,6 @@ package org.apache.hadoop.hdfs.tools.offlineImageViewer; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableList; import com.google.common.collect.Lists; -import org.apache.commons.io.FileUtils; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; import org.apache.hadoop.fs.permission.PermissionStatus; @@ -298,7 +297,8 @@ abstract class PBImageTextWriter implements Closeable { LevelDBMetadataMap(String baseDir) throws IOException { File dbDir = new File(baseDir); if (dbDir.exists()) { - FileUtils.deleteDirectory(dbDir); + throw new IOException("Folder " + dbDir + " already exists! Delete " + + "manually or provide another (not existing) directory!"); } if (!dbDir.mkdirs()) { throw new IOException("Failed to mkdir on " + dbDir); diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/tools/offlineImageViewer/TestOfflineImageViewer.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/tools/offlineImageViewer/TestOfflineImageViewer.java index c84237cb836..2fdba752416 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/tools/offlineImageViewer/TestOfflineImageViewer.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/tools/offlineImageViewer/TestOfflineImageViewer.java @@ -644,6 +644,25 @@ public class TestOfflineImageViewer { } } + @Test(expected = IOException.class) + public void testDelimitedWithExistingFolder() throws IOException, + InterruptedException { + File tempDelimitedDir = null; + try { + String tempDelimitedDirName = "tempDirDelimited"; + String tempDelimitedDirPath = new FileSystemTestHelper(). + getTestRootDir() + "/" + tempDelimitedDirName; + tempDelimitedDir = new File(tempDelimitedDirPath); + Assert.assertTrue("Couldn't create temp directory!", + tempDelimitedDir.mkdirs()); + testPBDelimitedWriter(tempDelimitedDirPath); + } finally { + if (tempDelimitedDir != null) { + FileUtils.deleteDirectory(tempDelimitedDir); + } + } + } + private void testPBDelimitedWriter(String db) throws IOException, InterruptedException { final String DELIMITER = "\t";