Well, if a consumer is looking for 'serialVersionUID' fields to
indicate the strength of the serialization contract, then they're
going to be thrown off by the fact that the class implements
Serializable in the first place.

As for regenerating the 'serialVersionUID' field when a class is
changed, I would consider this of little concern, since there are no
guarantees between the serialization interop of VMs and the interop
between different versions of a single VM.

I would say there are really only two valid considerations in this
discussion: code style and the possibility of a small runtime
optimization.

Code style - It would clean up the code a bit remove the fields, but
I'd also add @SuppressWarnings() annotations to the respective
classes, so if anyone doesn't like that it could weigh on this.

Runtime optimization - I'm not positive of this, nor do I completely
understand the actual affect, but wouldn't explicit 'serialVersionUID'
fields mean that when those classes are actually serialized, a UID
wouldn't need to be generated at runtime, correct? Now, I'll be the
first to admit, this is a micro optimization, so it doesn't carry to
much weight. However, I am curious about the details of the reality
behind this thought, so if anyone knows, please post.

-Nathan

On 11/11/06, Zakharov, Vasily M <[EMAIL PROTECTED]> wrote:
Nathan,

Yes, there is some harm - someone could change the classes in future and
forget
to change the serialVersionUID. Also adding serialVersionUID implies the
serialization
compatibility is important, which is not the case.

Regards,
Vasily Zakharov
Intel Middleware Products Division


-----Original Message-----
From: Nathan Beyer [mailto:[EMAIL PROTECTED]
Sent: Saturday, November 11, 2006 7:48 AM
To: harmony-dev@incubator.apache.org
Subject: Re: [classlib][swing] Serialization of Swing classes

If there's no need for serialization compatability between VMs and
versions of a VM, then is there any harm in adding explicit
serialVersionUID fields?

On 11/10/06, Ivanov, Alexey A <[EMAIL PROTECTED]> wrote:
> Nathan, all,
>
> You shouldn't add explicit serialVersionUID because Sun explicitly
states that serialized form of Swing classes maybe incompatible with
future Swing releases. And there's no description of serialized form for
any Swing class.
>
> I'm pretty sure Harmony is not compatible with Sun classes with regard
to serialized from of Swing classes. And new fields can be added to a
class or removed, which will break the serialized form.
>
> See the Warning in JTree JavaDoc:
http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/JTree.html
>
> The serialVersionUID declarations were intentionally missed.
>
> Regards,
> Alexey.
>
>
> P.S. Thanks for cleaning up the code to use parameterized types where
possible.
> I've looked through j.s.BasicSwingTestCase and restricted the type
parameter, as well as refactored the code accessing Swing components so
that it always runs on the Event Dispatch Thread. See
https://issues.apache.org/jira/browse/HARMONY-2078.
>
> Also I've cleaned up some classes where I fixed bugs:
> https://issues.apache.org/jira/browse/HARMONY-2089
> https://issues.apache.org/jira/browse/HARMONY-2119
> https://issues.apache.org/jira/browse/HARMONY-2121
>
> --
> Alexey A. Ivanov
> Intel EnterpriseSolutions SoftwareDivision
>

Reply via email to