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 zx...@apache.org on 2015/09/24 20:51:48 UTC
hadoop git commit: HADOOP-12252. LocalDirAllocator should not throw
NPE with empty string configuration. Contributed by Zhihai Xu
Repository: hadoop
Updated Branches:
refs/heads/trunk df31c446b -> 52c1f272e
HADOOP-12252. LocalDirAllocator should not throw NPE with empty string configuration. Contributed by Zhihai Xu
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/52c1f272
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/52c1f272
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/52c1f272
Branch: refs/heads/trunk
Commit: 52c1f272ecb6c29c81898a1ff50d03a1296df1f7
Parents: df31c44
Author: Zhihai Xu <zx...@apache.org>
Authored: Thu Sep 24 11:48:11 2015 -0700
Committer: Zhihai Xu <zx...@apache.org>
Committed: Thu Sep 24 11:51:22 2015 -0700
----------------------------------------------------------------------
hadoop-common-project/hadoop-common/CHANGES.txt | 3 +++
.../org/apache/hadoop/fs/LocalDirAllocator.java | 4 +--
.../apache/hadoop/fs/TestLocalDirAllocator.java | 26 +++++++++++++++++++-
3 files changed, 30 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hadoop/blob/52c1f272/hadoop-common-project/hadoop-common/CHANGES.txt
----------------------------------------------------------------------
diff --git a/hadoop-common-project/hadoop-common/CHANGES.txt b/hadoop-common-project/hadoop-common/CHANGES.txt
index 11e4852..d5ce38b 100644
--- a/hadoop-common-project/hadoop-common/CHANGES.txt
+++ b/hadoop-common-project/hadoop-common/CHANGES.txt
@@ -1084,6 +1084,9 @@ Release 2.8.0 - UNRELEASED
HADOOP-12386. RetryPolicies.RETRY_FOREVER should be able to specify a
retry interval. (Sunil G via wangda)
+ HADOOP-12252. LocalDirAllocator should not throw NPE with empty string
+ configuration. (Zhihai Xu)
+
OPTIMIZATIONS
HADOOP-12051. ProtobufRpcEngine.invoke() should use Exception.toString()
http://git-wip-us.apache.org/repos/asf/hadoop/blob/52c1f272/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/LocalDirAllocator.java
----------------------------------------------------------------------
diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/LocalDirAllocator.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/LocalDirAllocator.java
index 8f011ce..ccea6e5 100644
--- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/LocalDirAllocator.java
+++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/LocalDirAllocator.java
@@ -250,9 +250,9 @@ public class LocalDirAllocator {
private int dirNumLastAccessed;
private Random dirIndexRandomizer = new Random();
private FileSystem localFS;
- private DF[] dirDF;
+ private DF[] dirDF = new DF[0];
private String contextCfgItemName;
- private String[] localDirs;
+ private String[] localDirs = new String[0];
private String savedLocalDirs = "";
public AllocatorPerContext(String contextCfgItemName) {
http://git-wip-us.apache.org/repos/asf/hadoop/blob/52c1f272/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/TestLocalDirAllocator.java
----------------------------------------------------------------------
diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/TestLocalDirAllocator.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/TestLocalDirAllocator.java
index ab887b9..2e31174 100644
--- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/TestLocalDirAllocator.java
+++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/TestLocalDirAllocator.java
@@ -26,6 +26,7 @@ import java.util.Iterator;
import java.util.NoSuchElementException;
import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.util.DiskChecker.DiskErrorException;
import org.apache.hadoop.util.Shell;
import org.junit.runner.RunWith;
@@ -312,7 +313,30 @@ public class TestLocalDirAllocator {
} catch (IOException e) {
assertEquals(CONTEXT + " not configured", e.getMessage());
} catch (NullPointerException e) {
- fail("Lack of configuration should not have thrown an NPE.");
+ fail("Lack of configuration should not have thrown a NPE.");
+ }
+
+ String NEW_CONTEXT = CONTEXT + ".new";
+ conf1.set(NEW_CONTEXT, "");
+ LocalDirAllocator newDirAllocator = new LocalDirAllocator(NEW_CONTEXT);
+ try {
+ newDirAllocator.getLocalPathForWrite("/test", conf1);
+ fail("Exception not thrown when " + NEW_CONTEXT +
+ " is set to empty string");
+ } catch (IOException e) {
+ assertTrue(e instanceof DiskErrorException);
+ } catch (NullPointerException e) {
+ fail("Wrong configuration should not have thrown a NPE.");
+ }
+
+ try {
+ newDirAllocator.getLocalPathToRead("/test", conf1);
+ fail("Exception not thrown when " + NEW_CONTEXT +
+ " is set to empty string");
+ } catch (IOException e) {
+ assertTrue(e instanceof DiskErrorException);
+ } catch (NullPointerException e) {
+ fail("Wrong configuration should not have thrown a NPE.");
}
}