You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by br...@apache.org on 2013/07/19 21:37:54 UTC
svn commit: r1504976 -
/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/Operator.java
Author: brock
Date: Fri Jul 19 19:37:53 2013
New Revision: 1504976
URL: http://svn.apache.org/r1504976
Log:
HIVE-4818: SequenceId in operator is not thread safe (Edward Capriolo via Brock Noland)
Modified:
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/Operator.java
Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/Operator.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/Operator.java?rev=1504976&r1=1504975&r2=1504976&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/Operator.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/Operator.java Fri Jul 19 19:37:53 2013
@@ -27,6 +27,7 @@ import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
+import java.util.concurrent.atomic.AtomicInteger;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -77,7 +78,7 @@ public abstract class Operator<T extends
private transient ExecMapperContext execContext;
- private static int seqId;
+ private static AtomicInteger seqId;
// It can be optimized later so that an operator operator (init/close) is performed
// only after that operation has been performed on all the parents. This will require
@@ -104,17 +105,17 @@ public abstract class Operator<T extends
// all operators
static {
- seqId = 0;
+ seqId = new AtomicInteger(0);
}
private boolean useBucketizedHiveInputFormat;
public Operator() {
- id = String.valueOf(seqId++);
+ id = String.valueOf(seqId.getAndIncrement());
}
public static void resetId() {
- seqId = 0;
+ seqId.set(0);
}
/**
@@ -124,8 +125,8 @@ public abstract class Operator<T extends
* Used to report progress of certain operators.
*/
public Operator(Reporter reporter) {
+ this();
this.reporter = reporter;
- id = String.valueOf(seqId++);
}
public void setChildOperators(