diff --git a/ql/src/java/org/apache/hadoop/hive/ql/DriverContext.java b/ql/src/java/org/apache/hadoop/hive/ql/DriverContext.java index bda1079f6b..9098a7395d 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/DriverContext.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/DriverContext.java @@ -160,7 +160,7 @@ public synchronized void shutdown() { public static boolean isLaunchable(Task tsk) { // A launchable task is one that hasn't been queued, hasn't been // initialized, and is runnable. - return tsk.isNotInitialized() && tsk.isRunnable(); + return tsk.isNotRunning() && tsk.isNotInitialized() && tsk.isRunnable(); } public synchronized boolean addToRunnable(Task tsk) throws HiveException { diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/Task.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/Task.java index e16411b5d8..07d8cd4236 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/exec/Task.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/Task.java @@ -410,6 +410,9 @@ public synchronized boolean isNotInitialized() { return taskState.ordinal() < TaskState.INITIALIZED.ordinal(); } + public synchronized boolean isNotRunning() { + return taskState.ordinal() < TaskState.RUNNING.ordinal(); + } public boolean isRunnable() { boolean isrunnable = true;