Lei (Eddy) Xu created HADOOP-12164:
--------------------------------------

             Summary: Fix TestMove and TestFsShellReturnCode failed to get 
command name using reflection.
                 Key: HADOOP-12164
                 URL: https://issues.apache.org/jira/browse/HADOOP-12164
             Project: Hadoop Common
          Issue Type: Bug
    Affects Versions: 2.7.0
            Reporter: Lei (Eddy) Xu
            Assignee: Lei (Eddy) Xu
            Priority: Minor


When enabled {{hadoop.shell.missing.defaultFs.warning}}, a few tests were 
failed as following:

{noformat}
java.lang.RuntimeException: failed to get .NAME
        at java.lang.Class.getDeclaredField(Class.java:1948)
        at org.apache.hadoop.fs.shell.Command.getCommandField(Command.java:458)
        at org.apache.hadoop.fs.shell.Command.getName(Command.java:401)
        at 
org.apache.hadoop.fs.shell.FsCommand.getCommandName(FsCommand.java:80)
        at 
org.apache.hadoop.fs.shell.FsCommand.processRawArguments(FsCommand.java:111)
        at org.apache.hadoop.fs.shell.Command.run(Command.java:154)
        at 
org.apache.hadoop.fs.TestFsShellReturnCode.testChgrpGroupValidity(TestFsShellReturnCode.java:434)
{noformat}

The reason is that, in {{FsCommand#processRawArguments}}, it uses 
{{getCommandName()}}, which uses reflection to find {{static String NAME}} 
field, to build error message. But in the tests, the commands are built without 
{{static String NAME}} field, since it is not inherited. 



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

Reply via email to