=per #18439 Preserve original manifest for IdentityEventAdapter

* when WriteMessages is sent directly to the  journal for testing
  purposes we want to preserve the original manifest instead of
  letting IdentityEventAdapter clearing it out
This commit is contained in:
Patrik Nordwall 2015-09-10 11:11:15 +02:00
parent 1de8f05854
commit 45318b94c1

View file

@ -6,7 +6,6 @@ package akka.persistence.journal
import akka.actor.Actor
import akka.persistence.{ Persistence, PersistentEnvelope, PersistentRepr }
import scala.collection.immutable
import akka.persistence.AtomicWrite
@ -33,11 +32,16 @@ private[akka] trait WriteJournalBase {
private[akka] final def adaptToJournal(repr: PersistentRepr): PersistentRepr = {
val payload = repr.payload
val adapter = eventAdapters.get(payload.getClass)
val manifest = adapter.manifest(payload)
repr
.withPayload(adapter.toJournal(payload))
.withManifest(manifest)
// IdentityEventAdapter returns "" as manifest and normally the incoming PersistentRepr
// doesn't have an assigned manifest, but when WriteMessages is sent directly to the
// journal for testing purposes we want to preserve the original manifest instead of
// letting IdentityEventAdapter clearing it out.
if (adapter == IdentityEventAdapter || adapter.isInstanceOf[NoopWriteEventAdapter])
repr
else {
repr.withPayload(adapter.toJournal(payload)).withManifest(adapter.manifest(payload))
}
}
}