Author: stack
Date: Tue Jan 21 05:16:19 2014
New Revision: 1559924
URL: http://svn.apache.org/r1559924
Log:
HBASE-10143 replace WritableFactories's hashmap with ConcurrentHashMap (Liang
Xie via Stack)
Modified:
hadoop/common/branches/branch-2/hadoop-common-project/hadoop-common/CHANGES.txt
hadoop/common/branches/branch-2/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/WritableFactories.java
Modified:
hadoop/common/branches/branch-2/hadoop-common-project/hadoop-common/CHANGES.txt
URL:
http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-common-project/hadoop-common/CHANGES.txt?rev=1559924&r1=1559923&r2=1559924&view=diff
==============================================================================
---
hadoop/common/branches/branch-2/hadoop-common-project/hadoop-common/CHANGES.txt
(original)
+++
hadoop/common/branches/branch-2/hadoop-common-project/hadoop-common/CHANGES.txt
Tue Jan 21 05:16:19 2014
@@ -136,6 +136,9 @@ Release 2.4.0 - UNRELEASED
HADOOP-10228. FsPermission#fromShort() should cache FsAction.values().
(Haohui Mai via cnauroth)
+ HADOOP-10143 replace WritableFactories's hashmap with ConcurrentHashMap
+ (Liang Xie via stack)
+
BUG FIXES
HADOOP-9964. Fix deadlocks in TestHttpServer by synchronize
Modified:
hadoop/common/branches/branch-2/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/WritableFactories.java
URL:
http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/WritableFactories.java?rev=1559924&r1=1559923&r2=1559924&view=diff
==============================================================================
---
hadoop/common/branches/branch-2/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/WritableFactories.java
(original)
+++
hadoop/common/branches/branch-2/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/WritableFactories.java
Tue Jan 21 05:16:19 2014
@@ -22,25 +22,26 @@ import org.apache.hadoop.classification.
import org.apache.hadoop.classification.InterfaceStability;
import org.apache.hadoop.conf.*;
import org.apache.hadoop.util.ReflectionUtils;
-import java.util.HashMap;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
/** Factories for non-public writables. Defining a factory permits {@link
* ObjectWritable} to be able to construct instances of non-public classes. */
@InterfaceAudience.Public
@InterfaceStability.Stable
public class WritableFactories {
- private static final HashMap<Class, WritableFactory> CLASS_TO_FACTORY =
- new HashMap<Class, WritableFactory>();
+ private static final Map<Class, WritableFactory> CLASS_TO_FACTORY =
+ new ConcurrentHashMap<Class, WritableFactory>();
private WritableFactories() {} // singleton
/** Define a factory for a class. */
- public static synchronized void setFactory(Class c, WritableFactory factory)
{
+ public static void setFactory(Class c, WritableFactory factory) {
CLASS_TO_FACTORY.put(c, factory);
}
/** Define a factory for a class. */
- public static synchronized WritableFactory getFactory(Class c) {
+ public static WritableFactory getFactory(Class c) {
return CLASS_TO_FACTORY.get(c);
}