HADOOP-12252. LocalDirAllocator should not throw NPE with empty string configuration. Contributed by Zhihai Xu
(cherry picked from commit 52c1f272ec
)
Conflicts:
hadoop-common-project/hadoop-common/CHANGES.txt
This commit is contained in:
parent
9bb6fba759
commit
4ba0febd58
|
@ -579,6 +579,9 @@ Release 2.8.0 - UNRELEASED
|
|||
required context item is not configured
|
||||
(Brahma Reddy Battula via harsh)
|
||||
|
||||
HADOOP-12252. LocalDirAllocator should not throw NPE with empty string
|
||||
configuration. (Zhihai Xu)
|
||||
|
||||
OPTIMIZATIONS
|
||||
|
||||
HADOOP-12051. ProtobufRpcEngine.invoke() should use Exception.toString()
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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.");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue