[ 
https://issues.apache.org/jira/browse/HDFS-10397?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15283184#comment-15283184
 ] 

Yongjun Zhang commented on HDFS-10397:
--------------------------------------

Hi [~liuml07],

Thanks for the patch. I did a quick browse, and have the following suggestion. 
Instead of changing {{validate}} method, I think we can possibly change the 
{{OptionParser#parse}} method, something like
{code}
boolean deleteMissing = 
command.hasOption(DistCpOptionSwitch.DELETE_MISSING.getSwitch());
boolean diff = command.hasOption(DistCpOptionSwitch.DIFF.getSwitch());
boolean ignoreDeleteMissing = deleteMissing && diff;
if (ignoreDeleteMissing) {
 // issue warning message
} else if (deleteMissing) {
 //set deleteMissing
}

if (diff) {
  // set diff
}
{code}

Basically let the parser to decide whether to ignore some switches, and let 
{{DistCpOption#validate}} to decide other invalid situations and throw 
InvalidArguement exception. This seems cleaner to me.

What do you think?

Thanks.


> Distcp should ignore -delete option if -diff option is provided instead of 
> exiting
> ----------------------------------------------------------------------------------
>
>                 Key: HDFS-10397
>                 URL: https://issues.apache.org/jira/browse/HDFS-10397
>             Project: Hadoop HDFS
>          Issue Type: Bug
>    Affects Versions: 2.8.0
>            Reporter: Mingliang Liu
>            Assignee: Mingliang Liu
>         Attachments: HDFS-10397.000.patch, HDFS-10397.001.patch
>
>
> In distcp, {{-delete}} and {{-diff}} options are mutually exclusive. 
> [HDFS-8828] brought strictly checking which makes the existing applications 
> (or scripts) that work just fine with both {{-delete}} and {{-diff}} options 
> previously stop performing because of the 
> {{java.lang.IllegalArgumentException: Diff is valid only with update 
> options}} exception.
> To make it backward incompatible, we can ignore the {{-delete}} option, given 
> {{-diff}} option, instead of exiting the program. Along with that, we can 
> print a warning message saying that _Diff is valid only with update options, 
> and -delete option is ignored_.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org

Reply via email to