[ https://issues.apache.org/jira/browse/FLINK-5397?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15801720#comment-15801720 ]
ASF GitHub Bot commented on FLINK-5397: --------------------------------------- Github user StephanEwen commented on the issue: https://github.com/apache/flink/pull/3050 Looks good, merging this... > Fail to deserialize savepoints in v1.1 when there exist missing fields in > class serialization descriptors > --------------------------------------------------------------------------------------------------------- > > Key: FLINK-5397 > URL: https://issues.apache.org/jira/browse/FLINK-5397 > Project: Flink > Issue Type: Bug > Components: State Backends, Checkpointing > Reporter: Xiaogang Shi > Assignee: Stefan Richter > > To restore from the savepoints in previous versions, Flink now keeps all > classes whose serialization is changed and put them in a separated package > ("migration"). > When deserializing the old savepoints, flink will look up correct descriptors > ({{ObjectStreamClass}}) for these classes, without using those ones written > in serialized data. The implementation however is problematic when there > exist missing field descriptors in the serialized data. > When serializing an object, Java will only write the descriptors of those > non-null fields. But when we look up class descriptors with given classes, > all fields will be put into the descriptors. As a result, we will deserialize > the savepoints with incorrect descriptors, leading to serialization > exceptions. > A simple resolution is to update the name of read descriptors using > Reflections, without using different descriptors. -- This message was sent by Atlassian JIRA (v6.3.4#6332)