override def apply[T]()

in bijection-util/src/main/scala/com/twitter/bijection/twitter_util/JavaFutureConverter.scala [78:93]


  override def apply[T](javaFuture: JFuture[T]): Future[T] = {
    val p = Promise[T]
    lazy val task: TimerTask = timer.schedule(checkFrequency) {
      if (javaFuture.isDone) {
        p.updateIfEmpty(Try(javaFuture.get()))
        task.cancel()
      }
    }
    require(task != null)
    p.setInterruptHandler { case NonFatal(e) =>
      task.cancel()
      p.updateIfEmpty(Throw(e))
      javaFuture.cancel(mayInterruptIfRunning)
    }
    p
  }