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 to...@apache.org on 2008/12/03 16:05:51 UTC

svn commit: r722921 - in /hadoop/core/branches/branch-0.19: CHANGES.txt src/mapred/org/apache/hadoop/mapred/CompletedJobStatusStore.java src/mapred/org/apache/hadoop/mapred/JobTracker.java

Author: tomwhite
Date: Wed Dec  3 07:05:50 2008
New Revision: 722921

URL: http://svn.apache.org/viewvc?rev=722921&view=rev
Log:
Merge -r 722912:722913 from trunk to 0.19 branch. Fixes: HADOOP-4420.

Modified:
    hadoop/core/branches/branch-0.19/CHANGES.txt
    hadoop/core/branches/branch-0.19/src/mapred/org/apache/hadoop/mapred/CompletedJobStatusStore.java
    hadoop/core/branches/branch-0.19/src/mapred/org/apache/hadoop/mapred/JobTracker.java

Modified: hadoop/core/branches/branch-0.19/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/core/branches/branch-0.19/CHANGES.txt?rev=722921&r1=722920&r2=722921&view=diff
==============================================================================
--- hadoop/core/branches/branch-0.19/CHANGES.txt (original)
+++ hadoop/core/branches/branch-0.19/CHANGES.txt Wed Dec  3 07:05:50 2008
@@ -12,6 +12,9 @@
     HADOOP-4697. Fix getBlockLocations in KosmosFileSystem to handle multiple
     blocks correctly. (Sriram Rao via cdouglas)
 
+    HADOOP-4420. Add null checks for job, caused by invalid job IDs.
+    (Aaron Kimball via tomwhite)
+
 Release 0.19.0 - 2008-11-18
 
   INCOMPATIBLE CHANGES

Modified: hadoop/core/branches/branch-0.19/src/mapred/org/apache/hadoop/mapred/CompletedJobStatusStore.java
URL: http://svn.apache.org/viewvc/hadoop/core/branches/branch-0.19/src/mapred/org/apache/hadoop/mapred/CompletedJobStatusStore.java?rev=722921&r1=722920&r2=722921&view=diff
==============================================================================
--- hadoop/core/branches/branch-0.19/src/mapred/org/apache/hadoop/mapred/CompletedJobStatusStore.java (original)
+++ hadoop/core/branches/branch-0.19/src/mapred/org/apache/hadoop/mapred/CompletedJobStatusStore.java Wed Dec  3 07:05:50 2008
@@ -219,6 +219,12 @@
    */
   public JobStatus readJobStatus(JobID jobId) {
     JobStatus jobStatus = null;
+    
+    if (null == jobId) {
+      LOG.warn("Could not read job status for null jobId");
+      return null;
+    }
+    
     if (active) {
       try {
         FSDataInputStream dataIn = getJobInfoFile(jobId);

Modified: hadoop/core/branches/branch-0.19/src/mapred/org/apache/hadoop/mapred/JobTracker.java
URL: http://svn.apache.org/viewvc/hadoop/core/branches/branch-0.19/src/mapred/org/apache/hadoop/mapred/JobTracker.java?rev=722921&r1=722920&r2=722921&view=diff
==============================================================================
--- hadoop/core/branches/branch-0.19/src/mapred/org/apache/hadoop/mapred/JobTracker.java (original)
+++ hadoop/core/branches/branch-0.19/src/mapred/org/apache/hadoop/mapred/JobTracker.java Wed Dec  3 07:05:50 2008
@@ -2285,7 +2285,18 @@
   }
     
   public synchronized void killJob(JobID jobid) throws IOException {
+    if (null == jobid) {
+      LOG.info("Null jobid object sent to JobTracker.killJob()");
+      return;
+    }
+    
     JobInProgress job = jobs.get(jobid);
+    
+    if (null == job) {
+      LOG.info("killJob(): JobId " + jobid.toString() + " is not a valid job");
+      return;
+    }
+        
     JobStatus prevStatus = (JobStatus)job.getStatus().clone();
     checkAccess(job, QueueManager.QueueOperation.ADMINISTER_JOBS);
     job.kill();
@@ -2315,6 +2326,11 @@
                                               String priority)
                                                 throws IOException {
     JobInProgress job = jobs.get(jobid);
+    if (null == job) {
+        LOG.info("setJobPriority(): JobId " + jobid.toString()
+            + " is not a valid job");
+        return;
+    }
     checkAccess(job, QueueManager.QueueOperation.ADMINISTER_JOBS);
     JobPriority newPriority = JobPriority.valueOf(priority);
     setJobPriority(jobid, newPriority);
@@ -2329,6 +2345,11 @@
     }
   }
   public synchronized JobStatus getJobStatus(JobID jobid) {
+    if (null == jobid) {
+      LOG.warn("JobTracker.getJobStatus() cannot get status for null jobid");
+      return null;
+    }
+    
     JobInProgress job = jobs.get(jobid);
     if (job != null) {
       return job.getStatus();