diff --git a/akka-actor/src/main/scala/actor/ActorRef.scala b/akka-actor/src/main/scala/actor/ActorRef.scala index 78c37176f8..c41408a1de 100644 --- a/akka-actor/src/main/scala/actor/ActorRef.scala +++ b/akka-actor/src/main/scala/actor/ActorRef.scala @@ -829,9 +829,8 @@ class LocalActorRef private[akka]( actor.shutdown ActorRegistry.unregister(this) if (isRemotingEnabled) { - remoteAddress.foreach { address => - RemoteClientModule.unregister(address, uuid) - } + if(remoteAddress.isDefined) + RemoteClientModule.unregister(remoteAddress.get, uuid) RemoteServerModule.unregister(this) } nullOutActorRefReferencesFor(actorInstance.get) diff --git a/akka-remote/src/main/scala/remote/RemoteServer.scala b/akka-remote/src/main/scala/remote/RemoteServer.scala index 142670a84a..b10d8e5825 100644 --- a/akka-remote/src/main/scala/remote/RemoteServer.scala +++ b/akka-remote/src/main/scala/remote/RemoteServer.scala @@ -276,7 +276,7 @@ class RemoteServer extends Logging with ListenerManagement { /** * Register Remote Actor by the Actor's 'uuid' field. It starts the Actor if it is not started already. */ - def register(actorRef: ActorRef): Unit = register(actorRef.uuid,actorRef) + def register(actorRef: ActorRef): Unit = register(actorRef.id,actorRef) /** * Register Remote Actor by a specific 'id' passed as argument. @@ -295,13 +295,13 @@ class RemoteServer extends Logging with ListenerManagement { } /** - * Unregister Remote Actor that is registered using its 'uuid' field (not custom ID). + * Unregister Remote Actor that is registered using its 'id' field (not custom ID). */ def unregister(actorRef: ActorRef):Unit = synchronized { if (_isRunning) { log.debug("Unregistering server side remote actor [%s] with id [%s:%s]", actorRef.actorClass.getName, actorRef.id, actorRef.uuid) val actorMap = actors() - actorMap remove actorRef.uuid + actorMap remove actorRef.id if (actorRef.registeredInRemoteNodeDuringSerialization) actorMap remove actorRef.uuid } }