Hi Chris, On Tuesday, October 1, 2019 12:56:55 PM CEST Chris Hegarty wrote: > Please find a link to the draft serialization spec for records: > > https://cr.openjdk.java.net/~chegar/records/spec/records-serialization.03.ht > ml > > This spec will be updated to reflect the upcoming core reflection > changes for RecordComponent. > > Comments welcome. > > -Chris.
Above draft says: """Any serialPersistentFields or serialVersionUID field declarations are also ignored -- all record classes have a fixed serialVersionUID of 0L. """ So how does this work with migration plan? When a record-like class C with serialVersionUID != 0 is migrated to be a record, the stream produced with class C can not be read by a program where C is a record. Or is the value of serialVersionUID in the stream ignored when reading the stream into a record? In that case writing class C -> reading record C is supported, but what about writing record C -> reading class C ? If you still want to support migration, then perhaps the default serialVersionUID of records could be 0L always, but serialVersionUID field would still be considered when this default needs to be overridden. So for types that are records from day 1, users don't have to bother with serialVersionUID fields, but if a type is migrated from class to record, this can still be supported. What do you think? Regards, Peter