Bläddra i källkod

MAPREDUCE-3392. Fixed Cluster's getDelegationToken's API to return null when there isn't a supported token. Contributed by John George.

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1200484 13f79535-47bb-0310-9956-ffa450edef68
Vinod Kumar Vavilapalli 13 år sedan
förälder
incheckning
200bb27557

+ 3 - 0
hadoop-mapreduce-project/CHANGES.txt

@@ -105,6 +105,9 @@ Release 0.23.1 - Unreleased
     which per-container connections to NodeManager were lingering long enough
     to hit the ulimits on number of processes. (vinodkv)
 
+    MAPREDUCE-3392. Fixed Cluster's getDelegationToken's API to return null
+    when there isn't a supported token. (John George via vinodkv)
+
 Release 0.23.0 - 2011-11-01 
 
   INCOMPATIBLE CHANGES

+ 5 - 0
hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/Cluster.java

@@ -390,6 +390,11 @@ public class Cluster {
       getDelegationToken(Text renewer) throws IOException, InterruptedException{
     Token<DelegationTokenIdentifier> result =
       client.getDelegationToken(renewer);
+
+    if (result == null) {
+      return result;
+    }
+
     InetSocketAddress addr = Master.getMasterAddress(conf);
     StringBuilder service = new StringBuilder();
     service.append(NetUtils.normalizeHostName(addr.getAddress().

+ 20 - 0
hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapreduce/TestYarnClientProtocolProvider.java

@@ -25,6 +25,7 @@ import junit.framework.TestCase;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.mapred.YARNRunner;
 import org.apache.hadoop.mapreduce.protocol.ClientProtocol;
+import org.apache.hadoop.io.Text;
 import org.junit.Test;
 
 public class TestYarnClientProtocolProvider extends TestCase {
@@ -56,4 +57,23 @@ public class TestYarnClientProtocolProvider extends TestCase {
       }
     }
   }
+
+ 
+  @Test
+  public void testClusterGetDelegationToken() throws Exception {
+
+    Configuration conf = new Configuration(false);
+    Cluster cluster = null;
+    try {
+      conf = new Configuration();
+      conf.set(MRConfig.FRAMEWORK_NAME, MRConfig.YARN_FRAMEWORK_NAME);
+      cluster = new Cluster(conf);
+      cluster.getDelegationToken(new Text(" "));
+    } finally {
+      if (cluster != null) {
+        cluster.close();
+      }
+    }
+  }
+
 }