Repository: incubator-gearpump
Updated Branches:
  refs/heads/master 519a19500 -> 8cd0f0c9b


[GEARPUMP-282] Allow user to configure wait duration for a running app

Author: huafengw <[email protected]>

Closes #160 from huafengw/fix282.


Project: http://git-wip-us.apache.org/repos/asf/incubator-gearpump/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-gearpump/commit/8cd0f0c9
Tree: http://git-wip-us.apache.org/repos/asf/incubator-gearpump/tree/8cd0f0c9
Diff: http://git-wip-us.apache.org/repos/asf/incubator-gearpump/diff/8cd0f0c9

Branch: refs/heads/master
Commit: 8cd0f0c9b31944d892972178365871b8134b1619
Parents: 519a195
Author: huafengw <[email protected]>
Authored: Fri Feb 24 19:37:32 2017 +0800
Committer: manuzhang <[email protected]>
Committed: Fri Feb 24 19:37:49 2017 +0800

----------------------------------------------------------------------
 .../gearpump/cluster/client/RunningApplication.scala      | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-gearpump/blob/8cd0f0c9/core/src/main/scala/org/apache/gearpump/cluster/client/RunningApplication.scala
----------------------------------------------------------------------
diff --git 
a/core/src/main/scala/org/apache/gearpump/cluster/client/RunningApplication.scala
 
b/core/src/main/scala/org/apache/gearpump/cluster/client/RunningApplication.scala
index d62356a..103df01 100644
--- 
a/core/src/main/scala/org/apache/gearpump/cluster/client/RunningApplication.scala
+++ 
b/core/src/main/scala/org/apache/gearpump/cluster/client/RunningApplication.scala
@@ -25,6 +25,8 @@ import org.apache.gearpump.cluster.MasterToClient._
 import org.apache.gearpump.cluster.client.RunningApplication._
 import org.apache.gearpump.util.{ActorUtil, LogUtil}
 import org.slf4j.Logger
+import java.time.Duration
+import java.util.concurrent.TimeUnit
 
 import scala.concurrent.ExecutionContext.Implicits.global
 import scala.concurrent.Future
@@ -48,8 +50,12 @@ class RunningApplication(val appId: Int, master: ActorRef, 
timeout: Timeout) {
    * If failed, an exception will be thrown out
    */
   def waitUntilFinish(): Unit = {
+    this.waitUntilFinish(INF_DURATION)
+  }
+
+  def waitUntilFinish(duration: Duration): Unit = {
     val result = ActorUtil.askActor[ApplicationResult](master,
-      RegisterAppResultListener(appId), INF_TIMEOUT)
+      RegisterAppResultListener(appId), new Timeout(duration.getSeconds, 
TimeUnit.SECONDS))
     result match {
       case failed: ApplicationFailed =>
         throw failed.error
@@ -71,6 +77,6 @@ class RunningApplication(val appId: Int, master: ActorRef, 
timeout: Timeout) {
 object RunningApplication {
   private val LOG: Logger = LogUtil.getLogger(getClass)
   // This magic number is derived from Akka's configuration, which is the 
maximum delay
-  private val INF_TIMEOUT = new Timeout(2147482 seconds)
+  private val INF_DURATION = Duration.ofSeconds(2147482)
 }
 

Reply via email to