diff --git spark-client/src/main/java/org/apache/hive/spark/client/SparkClientImpl.java spark-client/src/main/java/org/apache/hive/spark/client/SparkClientImpl.java index 863aaa8..5191e1f 100644 --- spark-client/src/main/java/org/apache/hive/spark/client/SparkClientImpl.java +++ spark-client/src/main/java/org/apache/hive/spark/client/SparkClientImpl.java @@ -532,6 +532,7 @@ private void redirect(String name, Redirector redirector) { @Override public void operationComplete(io.netty.util.concurrent.Future f) { if (f.isSuccess()) { + // If the spark job finishes before this listener is called, the QUEUED status will not be set handle.changeState(JobHandle.State.QUEUED); } else if (!promise.isDone()) { promise.setFailure(f.cause()); diff --git spark-client/src/test/java/org/apache/hive/spark/client/TestSparkClient.java spark-client/src/test/java/org/apache/hive/spark/client/TestSparkClient.java index e4bf8ae..a27eb2b 100644 --- spark-client/src/test/java/org/apache/hive/spark/client/TestSparkClient.java +++ spark-client/src/test/java/org/apache/hive/spark/client/TestSparkClient.java @@ -103,7 +103,6 @@ public void call(SparkClient client) throws Exception { // state changes. assertFalse(((JobHandleImpl)handle).changeState(JobHandle.State.SENT)); - verify(listener).onJobQueued(handle); verify(listener).onJobStarted(handle); verify(listener).onJobSucceeded(same(handle), eq(handle.get())); }