aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuciano Resende <lresende@apache.org>2017-01-17 09:59:03 -0800
committerLuciano Resende <lresende@apache.org>2017-01-17 09:59:03 -0800
commitda95fc343d926585abd33f5fb3e5b0c7a6cee9bb (patch)
tree4e33b5835c323a95e3b1e0401722fd17386fe14b
parent94a52b4e2564cca7bbf581617e44e764ebdd49d0 (diff)
downloadtoree-gateway-da95fc343d926585abd33f5fb3e5b0c7a6cee9bb.tar.gz
toree-gateway-da95fc343d926585abd33f5fb3e5b0c7a6cee9bb.tar.bz2
toree-gateway-da95fc343d926585abd33f5fb3e5b0c7a6cee9bb.zip
Avoid calling success multiple times
In case where onResult or onStream is called, onSuccess might try to call success twice on the promise.
-rw-r--r--src/main/scala/com/ibm/ToreeClient.scala4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/main/scala/com/ibm/ToreeClient.scala b/src/main/scala/com/ibm/ToreeClient.scala
index d21d419..d1a8904 100644
--- a/src/main/scala/com/ibm/ToreeClient.scala
+++ b/src/main/scala/com/ibm/ToreeClient.scala
@@ -46,7 +46,9 @@ class ToreeGateway(client: SparkKernelClient) {
private def handleSuccess(promise:Promise[String], executeReplyOk: ExecuteReplyOk) = {
log.warn(s"Successful code completion")
- promise.complete(Try("done"))
+ if(! promise.isCompleted) {
+ promise.complete(Try("done"))
+ }
}
private def handleError(promise:Promise[String], reply:ExecuteReplyError) {