Jelajahi Sumber

HADOOP-3010. Merge of -r 644422:644423 from trunk to branch 0.16.

git-svn-id: https://svn.apache.org/repos/asf/hadoop/core/branches/branch-0.16@644895 13f79535-47bb-0310-9956-ffa450edef68
Nigel Daley 17 tahun lalu
induk
melakukan
5b0a2027b4
2 mengubah file dengan 14 tambahan dan 7 penghapusan
  1. 5 0
      CHANGES.txt
  2. 9 7
      src/java/org/apache/hadoop/ipc/Server.java

+ 5 - 0
CHANGES.txt

@@ -1,5 +1,10 @@
 Hadoop Change Log
 
+Release 0.16.3 - Unreleased
+
+    HADOOP-3010. Fix ConcurrentModificationException in ipc.Server.Responder.
+    (rangadi)
+
 Release 0.16.2 - 2008-04-02
 
   BUG FIXES

+ 9 - 7
src/java/org/apache/hadoop/ipc/Server.java

@@ -470,13 +470,15 @@ public abstract class Server {
           // long time, discard them.
           //
           LOG.debug("Checking for old call responses.");
-          iter = writeSelector.keys().iterator();
-          while (iter.hasNext()) {
-            SelectionKey key = iter.next();
-            try {
-              doPurge(key, now);
-            } catch (IOException e) {
-              LOG.warn("Error in purging old calls " + e);
+          synchronized (writeSelector.keys()) {
+            iter = writeSelector.keys().iterator();
+            while (iter.hasNext()) {
+              SelectionKey key = iter.next();
+              try {
+                doPurge(key, now);
+              } catch (IOException e) {
+                LOG.warn("Error in purging old calls " + e);
+              }
             }
           }
         } catch (OutOfMemoryError e) {