Hi Roger,

Thanks for the explanation; I'll adjust the proposed java.io.Serial spec and serialization-related check accordingly.

Cheers,

-Joe


On 8/10/2018 11:02 AM, Roger Riggs wrote:
Hi Joe,

serialVersionUID is used to confirm the identity of a class so it is applicable to classes implementing Externalizable as well as Serializable. (And also serialization of a class itself).

Thanks, Roger

On 8/10/18 1:39 PM, joe darcy wrote:
Hi Roger,

Returning to this topic, I'll add a clause in the spec for serialPersistentFields and Externalizable and corresponding code in the checker. Should there be a similar check for serialVersionUID in an Externalizable class? It wasn't clear to me from reading the specs and there are cases in the JDK of classes implementing Externalizable and having serialVersionUID fields defined.

Thanks,

-Joe


On 5/10/2018 2:26 PM, Roger Riggs wrote:
Hi Joe,

The words are fine.

The field serialPersistentFields is also not used with @Externalizable.

I would guess the lint checker would flag those methods and field for warnings for Externalizable classes
since they might mislead to think they were used.

Roger


On 5/10/2018 5:03 PM, joe darcy wrote:
PS After additional reading, I propose to add the follow clause to where using the annotation is not appropriate:

 * <li>the {@code writeObject}, {@code readObject}, and {@code
 * readObjectNoData} methods in a class that is {@code
 * Externalizable}. While the {@code Externalizable} interface extends
 * {@code Serializable}, those three methods are not used for
 * externalizable classes.

How does that sound?

Thanks,

-Joe


On 5/10/2018 1:22 PM, joe darcy wrote:
Hi Roger,

Right; there are a few other distinguished methods defined for externalization, but they are defined on the as methods on the Externalizable interface as far as I can tell. The existence of externalization is mentioned in the javac lint bug JDK-8202385.

I'll add as sentence indicating that the checks are for "Serializable but not Externalizable" classes.

Thanks,

-Joe







Reply via email to