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 ji...@apache.org on 2014/11/07 03:30:18 UTC
hadoop git commit: Revert "HADOOP-11274.
ConcurrentModificationException in Configuration Copy Constructor.
Contributed by Junping Du."
Repository: hadoop
Updated Branches:
refs/heads/trunk ae71a671a -> ba0a42cf6
Revert "HADOOP-11274. ConcurrentModificationException in Configuration Copy Constructor. Contributed by Junping Du."
This reverts commit 16b34824673f5a50d464727b8fad98470e5e984a.
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/ba0a42cf
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/ba0a42cf
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/ba0a42cf
Branch: refs/heads/trunk
Commit: ba0a42cf678f1bb53c2ad22e766b3b1a07b3800b
Parents: ae71a67
Author: Jing Zhao <ji...@apache.org>
Authored: Thu Nov 6 18:27:59 2014 -0800
Committer: Jing Zhao <ji...@apache.org>
Committed: Thu Nov 6 18:27:59 2014 -0800
----------------------------------------------------------------------
hadoop-common-project/hadoop-common/CHANGES.txt | 3 -
.../org/apache/hadoop/conf/Configuration.java | 85 +++++++++-----------
2 files changed, 40 insertions(+), 48 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hadoop/blob/ba0a42cf/hadoop-common-project/hadoop-common/CHANGES.txt
----------------------------------------------------------------------
diff --git a/hadoop-common-project/hadoop-common/CHANGES.txt b/hadoop-common-project/hadoop-common/CHANGES.txt
index 679b5bb..8587f12 100644
--- a/hadoop-common-project/hadoop-common/CHANGES.txt
+++ b/hadoop-common-project/hadoop-common/CHANGES.txt
@@ -910,9 +910,6 @@ Release 2.6.0 - UNRELEASED
HADOOP-11253. Hadoop streaming test TestStreamXmlMultipleRecords fails on
Windows. (Varun Vasudev via wheat9)
- HADOOP-11274. ConcurrentModificationException in Configuration Copy Constructor.
- (Junping Du via jing9)
-
BREAKDOWN OF HDFS-6134 AND HADOOP-10150 SUBTASKS AND RELATED JIRAS
HADOOP-10734. Implement high-performance secure random number sources.
http://git-wip-us.apache.org/repos/asf/hadoop/blob/ba0a42cf/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/conf/Configuration.java
----------------------------------------------------------------------
diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/conf/Configuration.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/conf/Configuration.java
index 16d5499..a3fae19 100644
--- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/conf/Configuration.java
+++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/conf/Configuration.java
@@ -690,26 +690,26 @@ public class Configuration implements Iterable<Map.Entry<String,String>>,
*/
@SuppressWarnings("unchecked")
public Configuration(Configuration other) {
- synchronized(other) {
- this.resources = (ArrayList<Resource>) other.resources.clone();
- if (other.properties != null) {
- this.properties = (Properties)other.properties.clone();
- }
-
- if (other.overlay!=null) {
- this.overlay = (Properties)other.overlay.clone();
- }
-
- this.updatingResource = new HashMap<String, String[]>(other.updatingResource);
- this.finalParameters = new HashSet<String>(other.finalParameters);
-
- this.classLoader = other.classLoader;
- this.loadDefaults = other.loadDefaults;
- setQuietMode(other.getQuietMode());
- }
+ this.resources = (ArrayList<Resource>) other.resources.clone();
+ synchronized(other) {
+ if (other.properties != null) {
+ this.properties = (Properties)other.properties.clone();
+ }
+
+ if (other.overlay!=null) {
+ this.overlay = (Properties)other.overlay.clone();
+ }
+
+ this.updatingResource = new HashMap<String, String[]>(other.updatingResource);
+ this.finalParameters = new HashSet<String>(other.finalParameters);
+ }
+
synchronized(Configuration.class) {
REGISTRY.put(this, null);
}
+ this.classLoader = other.classLoader;
+ this.loadDefaults = other.loadDefaults;
+ setQuietMode(other.getQuietMode());
}
/**
@@ -1025,28 +1025,26 @@ public class Configuration implements Iterable<Map.Entry<String,String>>,
getProps().setProperty(name, value);
String newSource = (source == null ? "programmatically" : source);
- synchronized (this) {
- if (!isDeprecated(name)) {
- updatingResource.put(name, new String[] {newSource});
- String[] altNames = getAlternativeNames(name);
- if(altNames != null) {
- for(String n: altNames) {
- if(!n.equals(name)) {
- getOverlay().setProperty(n, value);
- getProps().setProperty(n, value);
- updatingResource.put(n, new String[] {newSource});
- }
+ if (!isDeprecated(name)) {
+ updatingResource.put(name, new String[] {newSource});
+ String[] altNames = getAlternativeNames(name);
+ if(altNames != null) {
+ for(String n: altNames) {
+ if(!n.equals(name)) {
+ getOverlay().setProperty(n, value);
+ getProps().setProperty(n, value);
+ updatingResource.put(n, new String[] {newSource});
}
}
}
- else {
- String[] names = handleDeprecation(deprecationContext.get(), name);
- String altSource = "because " + name + " is deprecated";
- for(String n : names) {
- getOverlay().setProperty(n, value);
- getProps().setProperty(n, value);
- updatingResource.put(n, new String[] {altSource});
- }
+ }
+ else {
+ String[] names = handleDeprecation(deprecationContext.get(), name);
+ String altSource = "because " + name + " is deprecated";
+ for(String n : names) {
+ getOverlay().setProperty(n, value);
+ getProps().setProperty(n, value);
+ updatingResource.put(n, new String[] {altSource});
}
}
}
@@ -2279,7 +2277,7 @@ public class Configuration implements Iterable<Map.Entry<String,String>>,
*
* @return final parameter set.
*/
- public synchronized Set<String> getFinalParameters() {
+ public Set<String> getFinalParameters() {
return new HashSet<String>(finalParameters);
}
@@ -2542,18 +2540,14 @@ public class Configuration implements Iterable<Map.Entry<String,String>>,
if (value != null) {
if (!finalParameters.contains(attr)) {
properties.setProperty(attr, value);
- synchronized(this) {
- updatingResource.put(attr, source);
- }
+ updatingResource.put(attr, source);
} else if (!value.equals(properties.getProperty(attr))) {
LOG.warn(name+":an attempt to override final parameter: "+attr
+"; Ignoring.");
}
}
if (finalParameter) {
- synchronized(this) {
- finalParameters.add(attr);
- }
+ finalParameters.add(attr);
}
}
@@ -2747,7 +2741,7 @@ public class Configuration implements Iterable<Map.Entry<String,String>>,
}
@Override
- public synchronized void readFields(DataInput in) throws IOException {
+ public void readFields(DataInput in) throws IOException {
clear();
int size = WritableUtils.readVInt(in);
for(int i=0; i < size; ++i) {
@@ -2759,8 +2753,9 @@ public class Configuration implements Iterable<Map.Entry<String,String>>,
}
}
+ //@Override
@Override
- public synchronized void write(DataOutput out) throws IOException {
+ public void write(DataOutput out) throws IOException {
Properties props = getProps();
WritableUtils.writeVInt(out, props.size());
for(Map.Entry<Object, Object> item: props.entrySet()) {