Fixing ticket #837, broken remote actor refs when serialized
This commit is contained in:
parent
d8add4c68c
commit
276f30d30f
1 changed files with 18 additions and 10 deletions
|
|
@ -260,17 +260,25 @@ object RemoteActorSerialization {
|
||||||
/**
|
/**
|
||||||
* Serializes the ActorRef instance into a Protocol Buffers (protobuf) Message.
|
* Serializes the ActorRef instance into a Protocol Buffers (protobuf) Message.
|
||||||
*/
|
*/
|
||||||
def toRemoteActorRefProtocol(ar: ActorRef): RemoteActorRefProtocol = {
|
def toRemoteActorRefProtocol(actor: ActorRef): RemoteActorRefProtocol = actor match {
|
||||||
import ar._
|
case r: RemoteActorRef =>
|
||||||
|
RemoteActorRefProtocol.newBuilder
|
||||||
Actor.remote.registerByUuid(ar)
|
.setClassOrServiceName(r.id)
|
||||||
|
.setActorClassname(r.actorClassName)
|
||||||
RemoteActorRefProtocol.newBuilder
|
.setHomeAddress(ActorSerialization.toAddressProtocol(r))
|
||||||
.setClassOrServiceName("uuid:"+uuid.toString)
|
.setTimeout(r.timeout)
|
||||||
.setActorClassname(actorClassName)
|
|
||||||
.setHomeAddress(ActorSerialization.toAddressProtocol(ar))
|
|
||||||
.setTimeout(timeout)
|
|
||||||
.build
|
.build
|
||||||
|
case ar: LocalActorRef =>
|
||||||
|
import ar._
|
||||||
|
|
||||||
|
Actor.remote.registerByUuid(ar)
|
||||||
|
|
||||||
|
RemoteActorRefProtocol.newBuilder
|
||||||
|
.setClassOrServiceName("uuid:"+uuid.toString)
|
||||||
|
.setActorClassname(actorClassName)
|
||||||
|
.setHomeAddress(ActorSerialization.toAddressProtocol(ar))
|
||||||
|
.setTimeout(timeout)
|
||||||
|
.build
|
||||||
}
|
}
|
||||||
|
|
||||||
def createRemoteMessageProtocolBuilder(
|
def createRemoteMessageProtocolBuilder(
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue