MAPREDUCE-2531. Fixed jobcontrol to downgrade JobID. Contributed by Robert Evans.
git-svn-id: https://svn.apache.org/repos/asf/hadoop/mapreduce/trunk@1130992 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/CHANGES.txt b/CHANGES.txt
index 602f0b0..45caa30 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -163,6 +163,9 @@
BUG FIXES
+ MAPREDUCE-2531. Fixed jobcontrol to downgrade JobID. (Robert Evans via
+ acmurthy)
+
MAPREDUCE-1978. Rumen TraceBuilder should provide recursive
input folder scanning.
diff --git a/src/java/org/apache/hadoop/mapred/jobcontrol/Job.java b/src/java/org/apache/hadoop/mapred/jobcontrol/Job.java
index 121d178..a2868bb 100644
--- a/src/java/org/apache/hadoop/mapred/jobcontrol/Job.java
+++ b/src/java/org/apache/hadoop/mapred/jobcontrol/Job.java
@@ -68,7 +68,11 @@
* mapred framework.
*/
public JobID getAssignedJobID() {
- return (JobID)super.getMapredJobID();
+ org.apache.hadoop.mapreduce.JobID temp = super.getMapredJobID();
+ if(temp == null) {
+ return null;
+ }
+ return JobID.downgrade(temp);
}
/**
diff --git a/src/test/mapred/org/apache/hadoop/mapred/jobcontrol/TestJobControl.java b/src/test/mapred/org/apache/hadoop/mapred/jobcontrol/TestJobControl.java
index 4c768e6..a856f51 100644
--- a/src/test/mapred/org/apache/hadoop/mapred/jobcontrol/TestJobControl.java
+++ b/src/test/mapred/org/apache/hadoop/mapred/jobcontrol/TestJobControl.java
@@ -18,12 +18,15 @@
package org.apache.hadoop.mapred.jobcontrol;
+import static org.mockito.Mockito.*;
+
import java.util.ArrayList;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.mapred.JobConf;
+import org.apache.hadoop.mapred.JobID;
/**
* This class performs unit test for Job/JobControl classes.
@@ -191,7 +194,21 @@
public void testJobControl() throws Exception {
doJobControlTest();
}
-
+
+ public void testGetAssignedJobId() throws Exception {
+ JobConf jc = new JobConf();
+ Job j = new Job(jc);
+ //Just make sure no exception is thrown
+ assertNull(j.getAssignedJobID());
+ org.apache.hadoop.mapreduce.Job mockjob = mock(org.apache.hadoop.mapreduce.Job.class);
+ org.apache.hadoop.mapreduce.JobID jid = new org.apache.hadoop.mapreduce.JobID("test",0);
+ when(mockjob.getJobID()).thenReturn(jid);
+ j.setJob(mockjob);
+ JobID expected = new JobID("test",0);
+ assertEquals(expected, j.getAssignedJobID());
+ verify(mockjob).getJobID();
+ }
+
public static void main(String[] args) {
TestJobControl test = new TestJobControl();
try {