|
@@ -27,8 +27,12 @@ import java.io.DataOutputStream;
|
|
|
import java.io.File;
|
|
|
import java.io.FileOutputStream;
|
|
|
import java.util.ArrayList;
|
|
|
+import java.util.Collection;
|
|
|
import java.util.List;
|
|
|
|
|
|
+import org.apache.commons.io.FileUtils;
|
|
|
+import org.apache.commons.io.filefilter.DirectoryFileFilter;
|
|
|
+import org.apache.commons.io.filefilter.PrefixFileFilter;
|
|
|
import org.apache.hadoop.conf.Configuration;
|
|
|
import org.apache.hadoop.fs.ChecksumException;
|
|
|
import org.apache.hadoop.fs.FileSystem;
|
|
@@ -74,14 +78,13 @@ public class TestFileCorruption {
|
|
|
String bpid = cluster.getNamesystem().getBlockPoolId();
|
|
|
File data_dir = MiniDFSCluster.getFinalizedDir(storageDir, bpid);
|
|
|
assertTrue("data directory does not exist", data_dir.exists());
|
|
|
- File[] blocks = data_dir.listFiles();
|
|
|
- assertTrue("Blocks do not exist in data-dir", (blocks != null) && (blocks.length > 0));
|
|
|
- for (int idx = 0; idx < blocks.length; idx++) {
|
|
|
- if (!blocks[idx].getName().startsWith(Block.BLOCK_FILE_PREFIX)) {
|
|
|
- continue;
|
|
|
- }
|
|
|
- System.out.println("Deliberately removing file "+blocks[idx].getName());
|
|
|
- assertTrue("Cannot remove file.", blocks[idx].delete());
|
|
|
+ Collection<File> blocks = FileUtils.listFiles(data_dir,
|
|
|
+ new PrefixFileFilter(Block.BLOCK_FILE_PREFIX),
|
|
|
+ DirectoryFileFilter.DIRECTORY);
|
|
|
+ assertTrue("Blocks do not exist in data-dir", blocks.size() > 0);
|
|
|
+ for (File block : blocks) {
|
|
|
+ System.out.println("Deliberately removing file " + block.getName());
|
|
|
+ assertTrue("Cannot remove file.", block.delete());
|
|
|
}
|
|
|
assertTrue("Corrupted replicas not handled properly.",
|
|
|
util.checkFiles(fs, "/srcdat"));
|