From 4c290b51fae5de66a440de8cc446518f9346cd2b Mon Sep 17 00:00:00 2001 From: Matthew Foley Date: Wed, 15 Jun 2011 22:24:07 +0000 Subject: [PATCH] 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 --- common/CHANGES.txt | 3 +++ common/src/java/org/apache/hadoop/fs/shell/Command.java | 7 +++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/common/CHANGES.txt b/common/CHANGES.txt index 7f84847920f..562c3554583 100644 --- a/common/CHANGES.txt +++ b/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 diff --git a/common/src/java/org/apache/hadoop/fs/shell/Command.java b/common/src/java/org/apache/hadoop/fs/shell/Command.java index f9efdfcfb09..b315afba494 100644 --- a/common/src/java/org/apache/hadoop/fs/shell/Command.java +++ b/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);