Revert "HADOOP-16878. FileUtil.copy() to throw IOException if the source and destination are the same"
This reverts commit 59f01a548e
.
This commit is contained in:
parent
2ee294b1b1
commit
1397cf2496
|
@ -399,12 +399,6 @@ public class FileUtil {
|
||||||
Configuration conf) throws IOException {
|
Configuration conf) throws IOException {
|
||||||
Path src = srcStatus.getPath();
|
Path src = srcStatus.getPath();
|
||||||
dst = checkDest(src.getName(), dstFS, dst, overwrite);
|
dst = checkDest(src.getName(), dstFS, dst, overwrite);
|
||||||
|
|
||||||
if (srcFS.makeQualified(src).equals(dstFS.makeQualified(dst))) {
|
|
||||||
throw new PathOperationException("Source (" + src + ") and destination " +
|
|
||||||
"(" + dst + ") are equal in the copy command.");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (srcStatus.isDirectory()) {
|
if (srcStatus.isDirectory()) {
|
||||||
checkDependencies(srcFS, src, dstFS, dst);
|
checkDependencies(srcFS, src, dstFS, dst);
|
||||||
if (!dstFS.mkdirs(dst)) {
|
if (!dstFS.mkdirs(dst)) {
|
||||||
|
|
|
@ -33,7 +33,6 @@ import java.io.PrintStream;
|
||||||
import org.apache.hadoop.conf.Configuration;
|
import org.apache.hadoop.conf.Configuration;
|
||||||
import org.apache.hadoop.fs.permission.FsPermission;
|
import org.apache.hadoop.fs.permission.FsPermission;
|
||||||
import org.apache.hadoop.test.GenericTestUtils;
|
import org.apache.hadoop.test.GenericTestUtils;
|
||||||
import org.apache.hadoop.test.LambdaTestUtils;
|
|
||||||
import org.apache.hadoop.util.StringUtils;
|
import org.apache.hadoop.util.StringUtils;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.BeforeClass;
|
import org.junit.BeforeClass;
|
||||||
|
@ -175,20 +174,7 @@ public class TestFsShellCopy {
|
||||||
checkPut(dirPath, targetDir, true);
|
checkPut(dirPath, targetDir, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testCopyBetweenFsEqualPath() throws Exception {
|
|
||||||
Path testRoot = new Path(testRootDir, "testPutFile");
|
|
||||||
lfs.delete(testRoot, true);
|
|
||||||
lfs.mkdirs(testRoot);
|
|
||||||
|
|
||||||
Path filePath = new Path(testRoot, "sameSourceTarget");
|
|
||||||
lfs.create(filePath).close();
|
|
||||||
final FileStatus status = lfs.getFileStatus(filePath);
|
|
||||||
LambdaTestUtils.intercept(PathOperationException.class, () ->
|
|
||||||
FileUtil.copy(lfs, status, lfs, filePath, false, true, conf)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void checkPut(Path srcPath, Path targetDir, boolean useWindowsPath)
|
private void checkPut(Path srcPath, Path targetDir, boolean useWindowsPath)
|
||||||
throws Exception {
|
throws Exception {
|
||||||
lfs.delete(targetDir, true);
|
lfs.delete(targetDir, true);
|
||||||
|
|
|
@ -69,7 +69,6 @@ import org.apache.hadoop.fs.FSDataInputStream;
|
||||||
import org.apache.hadoop.fs.FSDataOutputStream;
|
import org.apache.hadoop.fs.FSDataOutputStream;
|
||||||
import org.apache.hadoop.fs.FileAlreadyExistsException;
|
import org.apache.hadoop.fs.FileAlreadyExistsException;
|
||||||
import org.apache.hadoop.fs.FileSystem.Statistics.StatisticsData;
|
import org.apache.hadoop.fs.FileSystem.Statistics.StatisticsData;
|
||||||
import org.apache.hadoop.fs.FileUtil;
|
|
||||||
import org.apache.hadoop.fs.FsServerDefaults;
|
import org.apache.hadoop.fs.FsServerDefaults;
|
||||||
import org.apache.hadoop.fs.FileChecksum;
|
import org.apache.hadoop.fs.FileChecksum;
|
||||||
import org.apache.hadoop.fs.FileStatus;
|
import org.apache.hadoop.fs.FileStatus;
|
||||||
|
@ -80,7 +79,6 @@ import org.apache.hadoop.fs.MD5MD5CRC32FileChecksum;
|
||||||
import org.apache.hadoop.fs.Options.ChecksumOpt;
|
import org.apache.hadoop.fs.Options.ChecksumOpt;
|
||||||
import org.apache.hadoop.fs.Path;
|
import org.apache.hadoop.fs.Path;
|
||||||
import org.apache.hadoop.fs.PathIsNotEmptyDirectoryException;
|
import org.apache.hadoop.fs.PathIsNotEmptyDirectoryException;
|
||||||
import org.apache.hadoop.fs.PathOperationException;
|
|
||||||
import org.apache.hadoop.fs.RemoteIterator;
|
import org.apache.hadoop.fs.RemoteIterator;
|
||||||
import org.apache.hadoop.fs.StorageStatistics.LongStatistic;
|
import org.apache.hadoop.fs.StorageStatistics.LongStatistic;
|
||||||
import org.apache.hadoop.fs.StorageType;
|
import org.apache.hadoop.fs.StorageType;
|
||||||
|
@ -2501,20 +2499,6 @@ public class TestDistributedFileSystem {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testCopyBetweenFsEqualPath() throws Exception {
|
|
||||||
Configuration conf = getTestConfiguration();
|
|
||||||
try (MiniDFSCluster cluster = new MiniDFSCluster.Builder(conf).build()) {
|
|
||||||
cluster.waitActive();
|
|
||||||
final DistributedFileSystem dfs = cluster.getFileSystem();
|
|
||||||
Path filePath = new Path("/dir/file");
|
|
||||||
dfs.create(filePath).close();
|
|
||||||
FileStatus fstatus = dfs.getFileStatus(filePath);
|
|
||||||
LambdaTestUtils.intercept(PathOperationException.class,
|
|
||||||
() -> FileUtil.copy(dfs, fstatus, dfs, filePath, false, true, conf));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testNameNodeCreateSnapshotTrashRootOnStartup()
|
public void testNameNodeCreateSnapshotTrashRootOnStartup()
|
||||||
throws Exception {
|
throws Exception {
|
||||||
|
|
Loading…
Reference in New Issue