[ 
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.

Reply via email to