You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by aw...@apache.org on 2015/06/30 21:01:37 UTC
[24/27] hadoop git commit: HDFS-8627. NPE thrown if unable to fetch
token from Namenode (Contributed by J.Andreina)
HDFS-8627. NPE thrown if unable to fetch token from Namenode (Contributed by J.Andreina)
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/7ba5bbac
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/7ba5bbac
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/7ba5bbac
Branch: refs/heads/HADOOP-12111
Commit: 7ba5bbac02b688f68a8d23671a1e869234b4cebe
Parents: 6d99017
Author: Vinayakumar B <vi...@apache.org>
Authored: Tue Jun 30 15:42:59 2015 +0530
Committer: Vinayakumar B <vi...@apache.org>
Committed: Tue Jun 30 15:42:59 2015 +0530
----------------------------------------------------------------------
hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt | 3 +++
.../hdfs/tools/DelegationTokenFetcher.java | 19 +++++++++++--------
.../hdfs/tools/TestDelegationTokenFetcher.java | 15 +++++++++++++++
3 files changed, 29 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hadoop/blob/7ba5bbac/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
index ea67ea1..b065f98 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
+++ b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
@@ -338,6 +338,9 @@ Trunk (Unreleased)
HDFS-8412. Fix the test failures in HTTPFS. (umamahesh)
+ HDFS-8627. NPE thrown if unable to fetch token from Namenode
+ (J.Andreina via vinayakumarb)
+
Release 2.8.0 - UNRELEASED
NEW FEATURES
http://git-wip-us.apache.org/repos/asf/hadoop/blob/7ba5bbac/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/tools/DelegationTokenFetcher.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/tools/DelegationTokenFetcher.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/tools/DelegationTokenFetcher.java
index 6376243..803402d 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/tools/DelegationTokenFetcher.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/tools/DelegationTokenFetcher.java
@@ -176,14 +176,17 @@ public class DelegationTokenFetcher {
final String renewer, final Path tokenFile)
throws IOException {
Token<?> token = fs.getDelegationToken(renewer);
-
- Credentials cred = new Credentials();
- cred.addToken(token.getKind(), token);
- cred.writeTokenStorageFile(tokenFile, conf);
-
- if (LOG.isDebugEnabled()) {
- LOG.debug("Fetched token " + fs.getUri() + " for " + token.getService()
- + " into " + tokenFile);
+ if (null != token) {
+ Credentials cred = new Credentials();
+ cred.addToken(token.getKind(), token);
+ cred.writeTokenStorageFile(tokenFile, conf);
+
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Fetched token " + fs.getUri() + " for " +
+ token.getService() + " into " + tokenFile);
+ }
+ } else {
+ System.err.println("ERROR: Failed to fetch token from " + fs.getUri());
}
}
http://git-wip-us.apache.org/repos/asf/hadoop/blob/7ba5bbac/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/tools/TestDelegationTokenFetcher.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/tools/TestDelegationTokenFetcher.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/tools/TestDelegationTokenFetcher.java
index b4cf1c0..ab3933b 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/tools/TestDelegationTokenFetcher.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/tools/TestDelegationTokenFetcher.java
@@ -90,4 +90,19 @@ public class TestDelegationTokenFetcher {
DelegationTokenFetcher.cancelTokens(conf, p);
Assert.assertEquals(testToken, FakeRenewer.getLastCanceled());
}
+
+ /**
+ * If token returned is null, saveDelegationToken should not
+ * throw nullPointerException
+ */
+ @Test
+ public void testReturnedTokenIsNull() throws Exception {
+ WebHdfsFileSystem fs = mock(WebHdfsFileSystem.class);
+ doReturn(null).when(fs).getDelegationToken(anyString());
+ Path p = new Path(f.getRoot().getAbsolutePath(), tokenFile);
+ DelegationTokenFetcher.saveDelegationToken(conf, fs, null, p);
+ // When Token returned is null, TokenFile should not exist
+ Assert.assertFalse(p.getFileSystem(conf).exists(p));
+
+ }
}