You could get the 2.4 code and set the serialVersionUID of the Term class to the UID assigned to the 2.3 Term class (554776219862331599l) and recompile.

As for statically setting a serialVersionUID in the class, one could instead set it to a final value and implement Externalizable in order to keep binary compatibility between class versions that contains more changes than what the Serializable reflection support code can handle. That would also save a few clock ticks. All over I think that is a much better solution.


    karl

2 dec 2008 kl. 03.18 skrev Jason Rutherglen:

Hi Mike,

Can you build and release a 2.4 jar using the 2.3 build environment?

Besides having to remember to change the serialVersionUID, are there any
known downsides to setting it explicitly?

As far as I know it's all good.

Jason

On Mon, Dec 1, 2008 at 6:11 PM, Michael McCandless <
[EMAIL PROTECTED]> wrote:


Jason Rutherglen wrote:

if you don't set serialVersionUID yourself, then java assigns a

rather volatile one for you

True however the Java specification defines how the serialVersionUID
should
be created in the event it's not defined.  The caveat being it's not
strictly enforced and so Sun alternative compilers may decide to change
how
it's created (from what I've read). Base classes like Term and Query
don't
change very often so we may want to settle on a serialVersionUID for these
top level classes.


Makes sense. Besides having to remember to change the serialVersionUID,
are
there any known downsides to setting it explicitly?

Lucene sets it for 2 sources now (RAMFile & RAMDirectory).

Was a different compiler used for the 2.4 release compared to 2.3?


Likely, yes (two different people, Michael and Mike (me!), in different
envs,
did the releases).

Mike


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to