From d412a1a1a85b2f7d0df78017f86b8b926fd88a7d Mon Sep 17 00:00:00 2001 From: Alejandro Abdelnur Date: Fri, 15 Mar 2013 18:50:51 +0000 Subject: [PATCH] MAPREDUCE-4571. TestHsWebServicesJobs fails on jdk7. (tgraves via tucu) git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1457061 13f79535-47bb-0310-9956-ffa450edef68 --- hadoop-mapreduce-project/CHANGES.txt | 2 ++ .../mapreduce/v2/hs/MockHistoryJobs.java | 23 +++++++++++++------ .../v2/hs/webapp/TestHsWebServicesJobs.java | 12 ++++++---- 3 files changed, 25 insertions(+), 12 deletions(-) diff --git a/hadoop-mapreduce-project/CHANGES.txt b/hadoop-mapreduce-project/CHANGES.txt index 76fd2b0a8e..4310ee14b8 100644 --- a/hadoop-mapreduce-project/CHANGES.txt +++ b/hadoop-mapreduce-project/CHANGES.txt @@ -230,6 +230,8 @@ Release 2.0.5-beta - UNRELEASED appropriately used and that on-disk segments are correctly sorted on file-size. (Anty Rao and Ravi Prakash via acmurthy) + MAPREDUCE-4571. TestHsWebServicesJobs fails on jdk7. (tgraves via tucu) + Release 2.0.4-alpha - UNRELEASED INCOMPATIBLE CHANGES diff --git a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/test/java/org/apache/hadoop/mapreduce/v2/hs/MockHistoryJobs.java b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/test/java/org/apache/hadoop/mapreduce/v2/hs/MockHistoryJobs.java index 00b62a7973..d54aa955ff 100644 --- a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/test/java/org/apache/hadoop/mapreduce/v2/hs/MockHistoryJobs.java +++ b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/test/java/org/apache/hadoop/mapreduce/v2/hs/MockHistoryJobs.java @@ -77,13 +77,18 @@ private static JobsPair split(Map mocked) throws IOException { for(Map.Entry entry: mocked.entrySet()) { JobId id = entry.getKey(); Job j = entry.getValue(); - ret.full.put(id, new MockCompletedJob(j)); - JobReport report = j.getReport(); + MockCompletedJob mockJob = new MockCompletedJob(j); + // use MockCompletedJob to set everything below to make sure + // consistent with what history server would do + ret.full.put(id, mockJob); + JobReport report = mockJob.getReport(); JobIndexInfo info = new JobIndexInfo(report.getStartTime(), - report.getFinishTime(), j.getUserName(), j.getName(), id, - j.getCompletedMaps(), j.getCompletedReduces(), String.valueOf(j.getState())); - info.setQueueName(j.getQueueName()); + report.getFinishTime(), mockJob.getUserName(), mockJob.getName(), id, + mockJob.getCompletedMaps(), mockJob.getCompletedReduces(), + String.valueOf(mockJob.getState())); + info.setQueueName(mockJob.getQueueName()); ret.partial.put(id, new PartialJob(info, id)); + } return ret; } @@ -99,12 +104,16 @@ public MockCompletedJob(Job job) throws IOException { @Override public int getCompletedMaps() { - return job.getCompletedMaps(); + // we always return total since this is history server + // and PartialJob also assumes completed - total + return job.getTotalMaps(); } @Override public int getCompletedReduces() { - return job.getCompletedReduces(); + // we always return total since this is history server + // and PartialJob also assumes completed - total + return job.getTotalReduces(); } @Override diff --git a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/test/java/org/apache/hadoop/mapreduce/v2/hs/webapp/TestHsWebServicesJobs.java b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/test/java/org/apache/hadoop/mapreduce/v2/hs/webapp/TestHsWebServicesJobs.java index 2ce6c5d5ea..736fedb039 100644 --- a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/test/java/org/apache/hadoop/mapreduce/v2/hs/webapp/TestHsWebServicesJobs.java +++ b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/test/java/org/apache/hadoop/mapreduce/v2/hs/webapp/TestHsWebServicesJobs.java @@ -117,6 +117,7 @@ static class TestAppContext implements HistoryContext { fullJobs = jobs.full; } + TestAppContext(int appid, int numJobs, int numTasks, int numAttempts) { this(appid, numJobs, numTasks, numAttempts, false); } @@ -411,7 +412,8 @@ public void testJobIdSlash() throws JSONException, Exception { JSONObject json = response.getEntity(JSONObject.class); assertEquals("incorrect number of elements", 1, json.length()); JSONObject info = json.getJSONObject("job"); - VerifyJobsUtils.verifyHsJob(info, jobsMap.get(id)); + + VerifyJobsUtils.verifyHsJob(info, appContext.getJob(id)); } } @@ -613,7 +615,7 @@ public void testJobCounters() throws JSONException, Exception { JSONObject json = response.getEntity(JSONObject.class); assertEquals("incorrect number of elements", 1, json.length()); JSONObject info = json.getJSONObject("jobCounters"); - verifyHsJobCounters(info, jobsMap.get(id)); + verifyHsJobCounters(info, appContext.getJob(id)); } } @@ -631,7 +633,7 @@ public void testJobCountersSlash() throws JSONException, Exception { JSONObject json = response.getEntity(JSONObject.class); assertEquals("incorrect number of elements", 1, json.length()); JSONObject info = json.getJSONObject("jobCounters"); - verifyHsJobCounters(info, jobsMap.get(id)); + verifyHsJobCounters(info, appContext.getJob(id)); } } @@ -689,7 +691,7 @@ public void testJobCountersDefault() throws JSONException, Exception { JSONObject json = response.getEntity(JSONObject.class); assertEquals("incorrect number of elements", 1, json.length()); JSONObject info = json.getJSONObject("jobCounters"); - verifyHsJobCounters(info, jobsMap.get(id)); + verifyHsJobCounters(info, appContext.getJob(id)); } } @@ -711,7 +713,7 @@ public void testJobCountersXML() throws Exception { is.setCharacterStream(new StringReader(xml)); Document dom = db.parse(is); NodeList info = dom.getElementsByTagName("jobCounters"); - verifyHsJobCountersXML(info, jobsMap.get(id)); + verifyHsJobCountersXML(info, appContext.getJob(id)); } }