[
https://issues.apache.org/jira/browse/MAPREDUCE-648?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12755340#action_12755340
]
Ravi Gummadi commented on MAPREDUCE-648:
----------------------------------------
In dirExists() method, if dst exists, it should be a dir. If dst is a file,
throwing IOException.
Does the following look better ?
FileStatus status = null;
try {
status = destFileSys.getFileStatus(dst);
} catch (FileNotFoundException e) {
return false;
}
if (!status.isDir()) {
throw new IOException("Not a dir: " + dst+" is a file.");
}
return true;
> distcp -update launches job when there is at least one dir in source paths to
> be copied, even though there is nothing to copy
> -----------------------------------------------------------------------------------------------------------------------------
>
> Key: MAPREDUCE-648
> URL: https://issues.apache.org/jira/browse/MAPREDUCE-648
> Project: Hadoop Map/Reduce
> Issue Type: Bug
> Components: distcp
> Reporter: Ravi Gummadi
> Assignee: Ravi Gummadi
> Priority: Minor
> Attachments: d_dirCount648.patch, d_dirCount648.v1.patch,
> d_dirCount_648.patch
>
>
> distcp -update launches job when there is at least one dir in source paths to
> be copied, even though there is nothing to copy.
> HADOOP-5675 added fileCount > 0 to be checked to decide whether to launch
> job. And HADOOP-5762 changed this to fileCount + dirCount > 0 to solve the
> issue of empty directories not getting copied to destination. With -update,
> dirCount is incremented without checking if that dir already exists at the
> destination. So distcp job is launched because of dirCount > 0 even though
> there is nothing to copy. Incrementing dirCount can be skipped if that dir
> already exists at the destination in case of -update.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.