Find members ignored during record serialization
ProprietaryMarks the name of a direct member of a record that customizes serialization but is silently ignored, because a record is serialized from its record components and deserialized through its canonical constructor. The members marked are a private writeObject(ObjectOutputStream), readObject(ObjectInputStream) or readObjectNoData() method, a writeExternal(ObjectOutput) or readExternal(ObjectInput) method that overrides a supertype method such as the one in Externalizable, and a private final ObjectStreamField[] serialPersistentFields field. Members that only share a name with these, such as a non-private readObject or a writeExternal that overrides nothing, are not marked, and neither are writeReplace, readResolve and serialVersionUID, which a record still honours. Nothing is removed, since the logic in an ignored member usually has to move to the canonical constructor or to writeReplace/readResolve. Test sources are not searched.
io. moderne. staticanalysis. FindIgnoredRecordSerializationMembermod run . --recipe= io. moderne. staticanalysis. FindIgnoredRecordSerializationMemberInstall it once from Recipe actions, then run it on every repository under the current directory. New to the Moderne CLI? Set it up.