MAPREDUCE-2034. TestSubmitJob triggers NPE instead of permissions error. Contributed by Todd Lipcon.
git-svn-id: https://svn.apache.org/repos/asf/hadoop/mapreduce/trunk@1033668 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/CHANGES.txt b/CHANGES.txt
index baf399a..0cb361d 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -383,6 +383,9 @@
MAPREDUCE-2179. Fix RaidBlockSender compilation failure. (Ramkumar Vadali
via schen)
+ MAPREDUCE-2034. TestSubmitJob triggers NPE instead of permissions error.
+ (Todd Lipcon via tomwhite)
+
Release 0.21.1 - Unreleased
NEW FEATURES
diff --git a/src/test/mapred/org/apache/hadoop/mapred/TestSubmitJob.java b/src/test/mapred/org/apache/hadoop/mapred/TestSubmitJob.java
index 8ab0211..39a92ce 100644
--- a/src/test/mapred/org/apache/hadoop/mapred/TestSubmitJob.java
+++ b/src/test/mapred/org/apache/hadoop/mapred/TestSubmitJob.java
@@ -259,31 +259,30 @@
getDFSClient(conf_other, user2);
// try accessing mapred.system.dir/jobid/*
- boolean failed = false;
try {
- Path path = new Path(new URI(jt.getSystemDir()).getPath());
+ String path = new URI(jt.getSystemDir()).getPath();
LOG.info("Try listing the mapred-system-dir as the user ("
+ user2.getUserName() + ")");
- client.getListing(
- path.toString(), HdfsFileStatus.EMPTY_NAME, false);
+ client.getListing(path, HdfsFileStatus.EMPTY_NAME, false);
+ fail("JobTracker system dir is accessible to others");
} catch (IOException ioe) {
- failed = true;
+ assertTrue(ioe.toString(),
+ ioe.toString().contains("Permission denied"));
}
- assertTrue("JobTracker system dir is accessible to others", failed);
// try accessing ~/.staging/jobid/*
- failed = false;
JobInProgress jip = jt.getJob(id);
Path jobSubmitDirpath =
new Path(jip.getJobConf().get("mapreduce.job.dir"));
try {
LOG.info("Try accessing the job folder for job " + id + " as the user ("
+ user2.getUserName() + ")");
- client.getListing(
- jobSubmitDirpath.toString(), HdfsFileStatus.EMPTY_NAME, false);
+ client.getListing(jobSubmitDirpath.toUri().getPath(),
+ HdfsFileStatus.EMPTY_NAME, false);
+ fail("User's staging folder is accessible to others");
} catch (IOException ioe) {
- failed = true;
+ assertTrue(ioe.toString(),
+ ioe.toString().contains("Permission denied"));
}
- assertTrue("User's staging folder is accessible to others", failed);
UtilsForTests.signalTasks(dfs, fs, true, mapSignalFile.toString(),
reduceSignalFile.toString());
// wait for job to be done