Aviem Zur created BEAM-626:
------------------------------
Summary: AvroCoder not deserializing correctly in Kryo
Key: BEAM-626
URL: https://issues.apache.org/jira/browse/BEAM-626
Project: Beam
Issue Type: Bug
Components: sdk-java-core
Reporter: Aviem Zur
Assignee: Davor Bonaci
Priority: Minor
Unlike with Java serialization, when deserializing AvroCoder using Kryo, the
resulting AvroCoder is missing all of its transient fields.
The reason it works with Java serialization is because of the usage of
writeReplace and readResolve, which Kryo does not adhere to.
In ProtoCoder for example there are also unserializable members, the way it is
solved there is lazy initializing these members via their getters, so they are
initialized in the deserialized object on first call to the member.
It seems AvroCoder is the only class in Beam to use writeReplace convention.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)