diff --git a/akka-actor/src/main/scala/akka/pattern/AskSupport.scala b/akka-actor/src/main/scala/akka/pattern/AskSupport.scala index 0340c46eb7..91df600728 100644 --- a/akka-actor/src/main/scala/akka/pattern/AskSupport.scala +++ b/akka-actor/src/main/scala/akka/pattern/AskSupport.scala @@ -138,7 +138,7 @@ final class AskableActorRef(val actorRef: ActorRef) extends AnyVal { if (timeout.duration.length <= 0) Future.failed[Any](new IllegalArgumentException(s"""Timeout length must not be negative, question not sent to [$actorRef]. Sender[$sender] sent the message of type "${message.getClass.getName}".""")) else { - val a = PromiseActorRef(ref.provider, timeout, targetName = actorRef.toString, message, sender) + val a = PromiseActorRef(ref.provider, timeout, targetName = actorRef, message, sender) actorRef.tell(message, a) a.result.future } @@ -159,7 +159,7 @@ final class AskableActorSelection(val actorSel: ActorSelection) extends AnyVal { Future.failed[Any]( new IllegalArgumentException(s"""Timeout length must not be negative, question not sent to [$actorSel]. Sender[$sender] sent the message of type "${message.getClass.getName}".""")) else { - val a = PromiseActorRef(ref.provider, timeout, targetName = actorSel.toString, message, sender) + val a = PromiseActorRef(ref.provider, timeout, targetName = actorSel, message, sender) actorSel.tell(message, a) a.result.future } @@ -299,7 +299,7 @@ private[akka] final class PromiseActorRef private (val provider: ActorRefProvide @tailrec override def stop(): Unit = { def ensureCompleted(): Unit = { - result tryComplete Failure(new ActorKilledException("Stopped")) + result tryComplete ActorStopResult val watchers = clearWatchers() if (!watchers.isEmpty) { watchers foreach { watcher ⇒ @@ -328,7 +328,9 @@ private[akka] object PromiseActorRef { private case object Stopped private final case class StoppedWithPath(path: ActorPath) - def apply(provider: ActorRefProvider, timeout: Timeout, targetName: String, message: Any, sender: ActorRef = Actor.noSender): PromiseActorRef = { + private val ActorStopResult = Failure(new ActorKilledException("Stopped")) + + def apply(provider: ActorRefProvider, timeout: Timeout, targetName: Any, message: Any, sender: ActorRef = Actor.noSender): PromiseActorRef = { val result = Promise[Any]() val scheduler = provider.guardian.underlying.system.scheduler val a = new PromiseActorRef(provider, result) diff --git a/akka-actor/src/main/scala/akka/pattern/GracefulStopSupport.scala b/akka-actor/src/main/scala/akka/pattern/GracefulStopSupport.scala index af64d0fef6..f0e7e2e7a3 100644 --- a/akka-actor/src/main/scala/akka/pattern/GracefulStopSupport.scala +++ b/akka-actor/src/main/scala/akka/pattern/GracefulStopSupport.scala @@ -49,7 +49,7 @@ trait GracefulStopSupport { if (target.isTerminated) Future successful true else { val internalTarget = target.asInstanceOf[InternalActorRef] - val ref = PromiseActorRef(internalTarget.provider, Timeout(timeout), targetName = target.toString, message = stopMessage) + val ref = PromiseActorRef(internalTarget.provider, Timeout(timeout), targetName = target, message = stopMessage) internalTarget.sendSystemMessage(Watch(internalTarget, ref)) target.tell(stopMessage, Actor.noSender) ref.result.future.transform( diff --git a/akka-remote/src/main/scala/akka/remote/transport/ThrottlerTransportAdapter.scala b/akka-remote/src/main/scala/akka/remote/transport/ThrottlerTransportAdapter.scala index 4d2c1a77a6..82c7ca6959 100644 --- a/akka-remote/src/main/scala/akka/remote/transport/ThrottlerTransportAdapter.scala +++ b/akka-remote/src/main/scala/akka/remote/transport/ThrottlerTransportAdapter.scala @@ -298,7 +298,7 @@ private[transport] class ThrottlerManager(wrappedTransport: Transport) extends A if (target.isTerminated) Future successful SetThrottleAck else { val internalTarget = target.asInstanceOf[InternalActorRef] - val ref = PromiseActorRef(internalTarget.provider, timeout, target.toString, mode) + val ref = PromiseActorRef(internalTarget.provider, timeout, target, mode) internalTarget.sendSystemMessage(Watch(internalTarget, ref)) target.tell(mode, ref) ref.result.future.transform({