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 2007/04/16 14:59:44 UTC

svn commit: r529227 - in /lucene/hadoop/trunk: CHANGES.txt src/java/org/apache/hadoop/mapred/jobcontrol/Job.java src/java/org/apache/hadoop/mapred/jobcontrol/JobControl.java

Author: tomwhite
Date: Mon Apr 16 05:59:43 2007
New Revision: 529227

URL: http://svn.apache.org/viewvc?view=rev&rev=529227
Log:
HADOOP-1253.  Fix ConcurrentModificationException and NullPointerException in JobControl.  Contributed by Johan Oskarson.

Modified:
    lucene/hadoop/trunk/CHANGES.txt
    lucene/hadoop/trunk/src/java/org/apache/hadoop/mapred/jobcontrol/Job.java
    lucene/hadoop/trunk/src/java/org/apache/hadoop/mapred/jobcontrol/JobControl.java

Modified: lucene/hadoop/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/hadoop/trunk/CHANGES.txt?view=diff&rev=529227&r1=529226&r2=529227
==============================================================================
--- lucene/hadoop/trunk/CHANGES.txt (original)
+++ lucene/hadoop/trunk/CHANGES.txt Mon Apr 16 05:59:43 2007
@@ -194,6 +194,10 @@
     slaves file for stopping datanode.  
     (Michael Bieniosek via tomwhite)
 
+59. HADOOP-1253.  Fix ConcurrentModificationException and 
+    NullPointerException in JobControl.  
+    (Johan Oskarson via tomwhite)
+
 
 Release 0.12.3 - 2007-04-06
 

Modified: lucene/hadoop/trunk/src/java/org/apache/hadoop/mapred/jobcontrol/Job.java
URL: http://svn.apache.org/viewvc/lucene/hadoop/trunk/src/java/org/apache/hadoop/mapred/jobcontrol/Job.java?view=diff&rev=529227&r1=529226&r2=529227
==============================================================================
--- lucene/hadoop/trunk/src/java/org/apache/hadoop/mapred/jobcontrol/Job.java (original)
+++ lucene/hadoop/trunk/src/java/org/apache/hadoop/mapred/jobcontrol/Job.java Mon Apr 16 05:59:43 2007
@@ -243,7 +243,8 @@
 			this.state = Job.FAILED;
 			this.message = StringUtils.stringifyException(ioe);
 			try {
-				running.killJob();
+				if(running != null)
+					running.killJob();
 			} catch (IOException e1) {
 
 			}

Modified: lucene/hadoop/trunk/src/java/org/apache/hadoop/mapred/jobcontrol/JobControl.java
URL: http://svn.apache.org/viewvc/lucene/hadoop/trunk/src/java/org/apache/hadoop/mapred/jobcontrol/JobControl.java?view=diff&rev=529227&r1=529226&r2=529227
==============================================================================
--- lucene/hadoop/trunk/src/java/org/apache/hadoop/mapred/jobcontrol/JobControl.java (original)
+++ lucene/hadoop/trunk/src/java/org/apache/hadoop/mapred/jobcontrol/JobControl.java Mon Apr 16 05:59:43 2007
@@ -19,6 +19,7 @@
 package org.apache.hadoop.mapred.jobcontrol;
 
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.Hashtable;
 import java.util.Iterator;
 
@@ -74,10 +75,13 @@
 	
 	private static ArrayList toArrayList(Hashtable jobs) {
 		ArrayList retv = new ArrayList();
-		Iterator iter = jobs.values().iterator();
-		while (iter.hasNext()) {
-			retv.add(iter.next());
+		synchronized (jobs) {
+			Iterator iter = jobs.values().iterator();
+			while (iter.hasNext()) {
+				retv.add(iter.next());
+			}
 		}
+		
 		return retv;
 	}
 	
@@ -159,13 +163,16 @@
 	}
 	
 	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		// TODO Auto-generated method stub
-
+	 * Add a collection of jobs
+	 * 
+	 * @param jobs
+	 */
+	public void addJobs(Collection<Job> jobs) {
+		for (Job job : jobs) {
+			addJob(job);
+		}
 	}
-
+	
 	/**
 	 * @return the thread state
 	 */