Browse Source

commit 98d8043ef96dd9a67e23852b5e5caf8f0a4589db
Author: Krishna Ramachandran <ramach@yahoo-inc.com>
Date: Thu Oct 21 12:21:50 2010 -0700

. Delete PrintWriter using iterator to fix
java.util.ConcurrentModificationException (dking)


git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-0.20-security-patches@1077739 13f79535-47bb-0310-9956-ffa450edef68

Owen O'Malley 14 years ago
parent
commit
8e38e551c9
1 changed files with 3 additions and 2 deletions
  1. 3 2
      src/mapred/org/apache/hadoop/mapred/JobHistory.java

+ 3 - 2
src/mapred/org/apache/hadoop/mapred/JobHistory.java

@@ -823,11 +823,12 @@ public class JobHistory {
     }
     builder.append(LINE_DELIMITER_CHAR);
     
-    for (PrintWriter out : writers) {
+    for (Iterator<PrintWriter> iter = writers.iterator(); iter.hasNext();) {
+      PrintWriter out = iter.next();
       out.println(builder.toString());
       if (out.checkError() && id != null) {
         LOG.info("Logging failed for job " + id + "removing PrintWriter from FileManager");
-        fileManager.removeWriter(id, out);
+        iter.remove();
       }
     }
   }