diff --git a/akka-actor-tests/src/test/scala/akka/actor/dispatch/ActorModelSpec.scala b/akka-actor-tests/src/test/scala/akka/actor/dispatch/ActorModelSpec.scala index 0073857809..09eb75f8cb 100644 --- a/akka-actor-tests/src/test/scala/akka/actor/dispatch/ActorModelSpec.scala +++ b/akka-actor-tests/src/test/scala/akka/actor/dispatch/ActorModelSpec.scala @@ -420,12 +420,21 @@ abstract class ActorModelSpec(config: String) extends AkkaSpec(config) with Defa val f5 = try { a ? Interrupt } catch { case ie: InterruptedException ⇒ Promise.failed(new ActorInterruptedException(ie)).future } val f6 = a ? Reply("bar2") + val c = system.scheduler.scheduleOnce(2.seconds) { + import collection.JavaConverters._ + Thread.getAllStackTraces().asScala foreach { + case (thread, stack) ⇒ + println(s"$thread:") + stack foreach (s => println(s"\t$s")) + } + } assert(Await.result(f1, remaining) === "foo") assert(Await.result(f2, remaining) === "bar") assert(Await.result(f4, remaining) === "foo2") assert(intercept[ActorInterruptedException](Await.result(f3, remaining)).getCause.getMessage === "Ping!") assert(Await.result(f6, remaining) === "bar2") assert(intercept[ActorInterruptedException](Await.result(f5, remaining)).getCause.getMessage === "Ping!") + c.cancel() } } diff --git a/akka-actor/src/main/scala/akka/actor/RepointableActorRef.scala b/akka-actor/src/main/scala/akka/actor/RepointableActorRef.scala index 62cca3477b..fec648be06 100644 --- a/akka-actor/src/main/scala/akka/actor/RepointableActorRef.scala +++ b/akka-actor/src/main/scala/akka/actor/RepointableActorRef.scala @@ -212,7 +212,7 @@ private[akka] class UnstartedCell(val systemImpl: ActorSystemImpl, } else if (!queue.offer(msg)) { system.eventStream.publish(Warning(self.path.toString, getClass, "dropping message of type " + msg.message.getClass + " due to enqueue failure")) system.deadLetters ! DeadLetter(msg.message, msg.sender, self) - } + } else if (Mailbox.debug) println(s"$self temp queueing ${msg.message} from ${msg.sender}") } finally lock.unlock() } else { system.eventStream.publish(Warning(self.path.toString, getClass, "dropping message of type" + msg.message.getClass + " due to lock timeout")) @@ -243,7 +243,7 @@ private[akka] class UnstartedCell(val systemImpl: ActorSystemImpl, if (!wasEnqueued) { system.eventStream.publish(Warning(self.path.toString, getClass, "dropping system message " + msg + " due to enqueue failure")) system.deadLetters ! DeadLetter(msg, self, self) - } + } else if (Mailbox.debug) println(s"$self temp queueing system $msg") } } finally lock.unlock() } else {