=per #16542 Don't store sender in PersistentRepr

* I think it originated from channels, or some idea that
  the sender should be revived (as good as possible) during replay,
  but that is pretty useless
* It must still be in PersistentRepr for remote serialization
* I didn't want to change to the built in sender when looping to the
  journal because keeping it together with the message makes it easier
  to do batching (queueing)
* adjust tck
This commit is contained in:
Patrik Nordwall 2015-06-16 15:17:48 +02:00
parent b7297e2887
commit a2e5b3f8a4
8 changed files with 58 additions and 48 deletions

View file

@ -17,6 +17,7 @@ import akka.persistence.AtLeastOnceDelivery.{ AtLeastOnceDeliverySnapshot ⇒ At
import akka.persistence.AtLeastOnceDelivery.UnconfirmedDelivery
import scala.collection.immutable.VectorBuilder
import akka.persistence.fsm.PersistentFsmActor.StateChangeEvent
import akka.actor.Actor
/**
* Marker trait for all protobuf-serializable messages in `akka.persistence`.
@ -119,7 +120,7 @@ class MessageSerializer(val system: ExtendedActorSystem) extends BaseSerializer
val builder = PersistentMessage.newBuilder
if (persistent.persistenceId != Undefined) builder.setPersistenceId(persistent.persistenceId)
if (persistent.sender != null) builder.setSender(Serialization.serializedActorPath(persistent.sender))
if (persistent.sender != Actor.noSender) builder.setSender(Serialization.serializedActorPath(persistent.sender))
builder.setPayload(persistentPayloadBuilder(persistent.payload.asInstanceOf[AnyRef]))
builder.setSequenceNr(persistent.sequenceNr)
@ -164,7 +165,7 @@ class MessageSerializer(val system: ExtendedActorSystem) extends BaseSerializer
persistentMessage.getSequenceNr,
if (persistentMessage.hasPersistenceId) persistentMessage.getPersistenceId else Undefined,
persistentMessage.getDeleted,
if (persistentMessage.hasSender) system.provider.resolveActorRef(persistentMessage.getSender) else null)
if (persistentMessage.hasSender) system.provider.resolveActorRef(persistentMessage.getSender) else Actor.noSender)
}
private def payload(persistentPayload: PersistentPayload): Any = {