Revision 61bfaf2e src/main/scala/gr/grnet/aquarium/service/SimpleTimerService.scala

b/src/main/scala/gr/grnet/aquarium/service/SimpleTimerService.scala
35 35

  
36 36
package gr.grnet.aquarium.service
37 37

  
38
import gr.grnet.aquarium.util.{Loggable, Lifecycle}
39
import gr.grnet.aquarium.util.date.TimeHelpers
40 38
import java.util.{TimerTask, Timer}
41 39
import gr.grnet.aquarium.uid.{UUIDGenerator, UIDGenerator}
40
import gr.grnet.aquarium.util.chainOfCausesForLogging
42 41

  
43 42

  
44 43
/**
......
50 49
  private[this] val timer = new Timer()
51 50
  private[this] val uidGen: UIDGenerator[_] = UUIDGenerator
52 51

  
53
  def scheduleOnce[T](f: ⇒ T, delayMillis: Long): String = {
52
  def scheduleOnce[T](infoString: String, f: ⇒ T, delayMillis: Long, reportException: Boolean = true): String = {
54 53
    val uid = uidGen.nextUID()
55 54
    val timerTask = new TimerTask {
56 55
      def run() = {
57 56
        try f
58 57
        catch {
59 58
          case e: Exception ⇒
60
            logger.warn("While running task %s".format(uid))
59
            logger.warn("While running task %s(%s)\n%s".format(infoString, uid, chainOfCausesForLogging(e, 1)))
61 60
        }
62 61
      }
63 62
    }

Also available in: Unified diff