Quellcode durchsuchen

HADOOP-7377. Fix command name handling affecting DFSAdmin. Contributed by Daryn Sharp.

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1136223 13f79535-47bb-0310-9956-ffa450edef68
Matthew Foley vor 14 Jahren
Ursprung
Commit
4c290b51fa
2 geänderte Dateien mit 8 neuen und 2 gelöschten Zeilen
  1. 3 0
      common/CHANGES.txt
  2. 5 2
      common/src/java/org/apache/hadoop/fs/shell/Command.java

+ 3 - 0
common/CHANGES.txt

@@ -315,6 +315,9 @@ Trunk (unreleased changes)
     HADOOP-7390. VersionInfo not generated properly in git after unsplit. (todd
     via atm)
 
+    HADOOP-7377. Fix command name handling affecting DFSAdmin. (Daryn Sharp
+    via mattf)
+
 Release 0.22.0 - Unreleased
 
   INCOMPATIBLE CHANGES

+ 5 - 2
common/src/java/org/apache/hadoop/fs/shell/Command.java

@@ -20,6 +20,7 @@ package org.apache.hadoop.fs.shell;
 import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.PrintStream;
+import java.lang.reflect.Field;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.LinkedList;
@@ -378,7 +379,7 @@ abstract public class Command extends Configured {
   public String getName() {
     return (name == null)
       ? getCommandField("NAME")
-      : name.startsWith("-") ? name.substring(1) : name; // this is a historical method
+      : name.startsWith("-") ? name.substring(1) : name;
   }
 
   /**
@@ -433,7 +434,9 @@ abstract public class Command extends Configured {
   private String getCommandField(String field) {
     String value;
     try {
-      value = this.getClass().getField(field).get(this).toString();
+      Field f = this.getClass().getDeclaredField(field);
+      f.setAccessible(true);
+      value = f.get(this).toString();
     } catch (Exception e) {
       throw new RuntimeException(
           "failed to get " + this.getClass().getSimpleName()+"."+field, e);