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

Enis Soztutar commented on HADOOP-9660:
---------------------------------------

Thanks for looking into this. 
On linux bash using the GnuParser, -Dkey=value, "-Dkey=value" and -D key=value 
are all parsed equally. 
For the others, -D key value and -Dkey value would cause -Dkey to be parsed 
from GenericOptionsParser but it is ignored (see line: if (keyval.length == 2)) 
and value is sent to the user class. Currently if you are using this way, 
GenericOptionsParser will mis-parse your arguments anyway. With this patch, we 
make this valid. Since it was broken before, I do not think this will be a 
problem. 
For -D key,value, it would be silently ignored from GOP, and will continue to 
be so in linux. On powershell, I guess it would be valid if powershell sends it 
as ["-D","key","value"]. Would that be a problem? 
                
> [WINDOWS] Powershell / cmd parses -Dkey=value from command line as [-Dkey, 
> value] which breaks GenericsOptionParser
> -------------------------------------------------------------------------------------------------------------------
>
>                 Key: HADOOP-9660
>                 URL: https://issues.apache.org/jira/browse/HADOOP-9660
>             Project: Hadoop Common
>          Issue Type: Bug
>          Components: scripts, util
>            Reporter: Enis Soztutar
>            Assignee: Enis Soztutar
>             Fix For: 3.0.0, 2.1.0-beta
>
>         Attachments: hadoop-9660-branch1_v1.patch, 
> hadoop-9660-branch1_v2.patch, hadoop-9660-branch2_v1.patch, 
> hadoop-9660-branch2_v2.patch
>
>
> When parsing parameters to a class implementing Tool, and using ToolRunner, 
> we can pass 
> {code}
> bin/hadoop <tool_class> -Dkey=value 
> {code}
> However, powershell parses the '=' sign itself, and sends it to  java as 
> ["-Dkey", "value"] which breaks GenericOptionsParser. 
> Using "-Dkey=value" or '-Dkey=value' does not fix the problem. The only 
> workaround seems to trick PS by using: 
> '"-Dkey=value"' (single + double quote)
> In cmd, "-Dkey=value" works, but not '"-Dkey=value"'. 
> http://stackoverflow.com/questions/4940375/how-do-i-pass-an-equal-sign-when-calling-a-batch-script-in-powershell

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to