Fix serialization in TypedActor (#24851)

* fixed serialization in TypedActor
* generalized duplicates via Serialization.manifestFor
This commit is contained in:
Kirill Yankov 2018-04-12 19:58:13 +03:00 committed by Patrik Nordwall
parent e495dab941
commit 3ebb9fa9c1
18 changed files with 107 additions and 179 deletions

View file

@ -167,15 +167,8 @@ class MessageSerializer(val system: ExtendedActorSystem) extends BaseSerializer
val serializer = serialization.findSerializerFor(payload)
val builder = mf.PersistentPayload.newBuilder()
serializer match {
case ser2: SerializerWithStringManifest
val manifest = ser2.manifest(payload)
if (manifest != PersistentRepr.Undefined)
builder.setPayloadManifest(ByteString.copyFromUtf8(manifest))
case _
if (serializer.includeManifest)
builder.setPayloadManifest(ByteString.copyFromUtf8(payload.getClass.getName))
}
val ms = Serializers.manifestFor(serializer, payload)
if (ms.nonEmpty) builder.setPayloadManifest(ByteString.copyFromUtf8(ms))
builder.setPayload(ByteString.copyFrom(serializer.toBinary(payload)))
builder.setSerializerId(serializer.identifier)