浏览代码

HADOOP-6269. Fix threading issue with defaultResource in Configuration.
Contributed by Sreekanth Ramakrishnan


git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@882831 13f79535-47bb-0310-9956-ffa450edef68

Christopher Douglas 15 年之前
父节点
当前提交
09ec9c4ffc
共有 2 个文件被更改,包括 7 次插入3 次删除
  1. 3 0
      CHANGES.txt
  2. 4 3
      src/java/org/apache/hadoop/conf/Configuration.java

+ 3 - 0
CHANGES.txt

@@ -1181,6 +1181,9 @@ Release 0.20.2 - Unreleased
     count at the start of each block in Hadoop archives. (Ben Slusky, Tom
     White, and Mahadev Konar via cdouglas)
 
+    HADOOP-6269. Fix threading issue with defaultResource in Configuration.
+    (Sreekanth Ramakrishnan via cdouglas)
+
 Release 0.20.1 - 2009-09-01
 
   INCOMPATIBLE CHANGES

+ 4 - 3
src/java/org/apache/hadoop/conf/Configuration.java

@@ -44,6 +44,7 @@ import java.util.Properties;
 import java.util.Set;
 import java.util.StringTokenizer;
 import java.util.WeakHashMap;
+import java.util.concurrent.CopyOnWriteArrayList;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
@@ -168,8 +169,8 @@ public class Configuration implements Iterable<Map.Entry<String,String>>,
    * List of default Resources. Resources are loaded in the order of the list 
    * entries
    */
-  private static final ArrayList<String> defaultResources = 
-    new ArrayList<String>();
+  private static final CopyOnWriteArrayList<String> defaultResources =
+    new CopyOnWriteArrayList<String>();
 
   private static final Map<ClassLoader, Map<String, Class<?>>>
     CACHE_CLASSES = new WeakHashMap<ClassLoader, Map<String, Class<?>>>();
@@ -1685,7 +1686,7 @@ public class Configuration implements Iterable<Map.Entry<String,String>>,
     return sb.toString();
   }
 
-  private void toString(ArrayList resources, StringBuffer sb) {
+  private void toString(List resources, StringBuffer sb) {
     ListIterator i = resources.listIterator();
     while (i.hasNext()) {
       if (i.nextIndex() != 0) {