Return-Path: Delivered-To: apmail-lucene-java-dev-archive@www.apache.org Received: (qmail 94290 invoked from network); 5 Dec 2008 21:12:28 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 5 Dec 2008 21:12:28 -0000 Received: (qmail 86663 invoked by uid 500); 5 Dec 2008 21:12:34 -0000 Delivered-To: apmail-lucene-java-dev-archive@lucene.apache.org Received: (qmail 86615 invoked by uid 500); 5 Dec 2008 21:12:34 -0000 Mailing-List: contact java-dev-help@lucene.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: java-dev@lucene.apache.org Delivered-To: mailing list java-dev@lucene.apache.org Received: (qmail 86606 invoked by uid 99); 5 Dec 2008 21:12:34 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 05 Dec 2008 13:12:34 -0800 X-ASF-Spam-Status: No, hits=2.2 required=10.0 tests=HTML_MESSAGE,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of john.wang@gmail.com designates 209.85.217.10 as permitted sender) Received: from [209.85.217.10] (HELO mail-gx0-f10.google.com) (209.85.217.10) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 05 Dec 2008 21:11:05 +0000 Received: by gxk3 with SMTP id 3so323417gxk.5 for ; Fri, 05 Dec 2008 13:10:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to :subject:in-reply-to:mime-version:content-type:references; bh=r2ms8IW8xThOwp6nB1rYVUvpxcI+DfHH3Ez3xazj/Hw=; b=pm7An5ulTG4Lc4biv1OhR2IWIsCKtgn2O/FzaH8fgSkOMSznkkjtnUhlBSLs4oOkIg TTh2BAVRihE29UJxg0dWdS6JdMbKHrhqYM1ozCRR9IgNSYz5fxOiOtRtobyFkpHrBi53 OVf5GxcM5pWuHbbjC9LcNTyMZWNrzPFo8nmFo= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:in-reply-to:mime-version :content-type:references; b=hqSgwOihbzEwXqOT8KCkFuQBrXOgPHH0+Pn4/tq2xHHyitWYXrOqgrtaDeYcdMnqS2 tayF0DSjbcMVxlVpOMmOkVUxK+zu9Kv5j/e7jRpjHRupRXmZj5fkLNnpOK4iNvY2No7m +5+UKDQxcByI41PM80sPqJDI08ZOmGDFOcGPI= Received: by 10.90.93.13 with SMTP id q13mr248261agb.120.1228511403088; Fri, 05 Dec 2008 13:10:03 -0800 (PST) Received: by 10.90.51.19 with HTTP; Fri, 5 Dec 2008 13:10:02 -0800 (PST) Message-ID: <8837fb770812051310v628c1094te3e42c569305e8b7@mail.gmail.com> Date: Fri, 5 Dec 2008 13:10:02 -0800 From: "John Wang" To: java-dev@lucene.apache.org Subject: Re: [jira] Commented: (LUCENE-1473) Implement Externalizable in main top level searcher classes In-Reply-To: <39BDE566-C691-4289-809D-BB12C0577268@mikemccandless.com> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_Part_131190_10495544.1228511403074" References: <285450834.1228332464360.JavaMail.jira@brutus> <57AB459A-5FD8-4F90-8D04-E0EC170A5FEF@apache.org> <85d3c3b60812041121p3e4e79a9tb7c1a44c3a37d3e@mail.gmail.com> <8837fb770812041618n25767ba6k9f730387381f4d41@mail.gmail.com> <49396272.3060904@apache.org> <8837fb770812051123u35c0e969ld8e0f41a828de9a@mail.gmail.com> <39BDE566-C691-4289-809D-BB12C0577268@mikemccandless.com> X-Virus-Checked: Checked by ClamAV on apache.org ------=_Part_131190_10495544.1228511403074 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Mike: This has been gone back and forth on this thread already. Again, I agree it is not the perfect solution. I am comparing that to the current behavior, I don't think it is worse. (Only in my opinion). "live serialization" is not familiar to me. To understand it more, can you point me to somewhere the J2EE spec defines it? AFAIK, the J2EE spec does not make a distinction, and from what I gather from this thread, Lucene does not fall into the special category on how Serializable is used. Of course, it could just be my lack of understanding in the spec. We are happy to accept whatever you guys think on this issue. As it is currently, it is not consistent amongst different committers. Thanks -John On Fri, Dec 5, 2008 at 12:07 PM, Michael McCandless < lucene@mikemccandless.com> wrote: > > John Wang wrote: > > My proposal is to add the suid to Serializable classes >> > > That's too brittle. > > If we do that, then what happens when we need to add a field to the > class (eg, in 2.9 we've replaced "inclusive" in RangeQuery with > "includeLower" and "includeUpper")? The standard answer is you bump > the suid, but, then that breaks back compatibility. > > Since we would still sometimes, unpredictably, break back > compatibility, no app could rely on it. You can't have a "mostly > back compatible" promise. > > So... we have to either 1) only support "live serialization" and > update the javadocs saying so, or 2) support full back compat of > serialized classes and spell out the actual policy, make thorough > tests for it, etc. > > Mike > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: java-dev-unsubscribe@lucene.apache.org > For additional commands, e-mail: java-dev-help@lucene.apache.org > > ------=_Part_131190_10495544.1228511403074 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Mike:

       This has been gone back and forth on this thread already. Again, I agree it is not the perfect solution. I am comparing that to the current behavior, I don't think it is worse. (Only in my opinion).

       "live serialization" is not familiar to me. To understand it more, can you point me to somewhere the J2EE spec defines it? AFAIK, the J2EE spec does not make a distinction, and from what I gather from this thread, Lucene does not fall into the special category on how Serializable is used. Of course, it could just be my lack of understanding in the spec.

       We are happy to accept whatever you guys think on this issue. As it is currently, it is not consistent amongst different committers. 

Thanks

-John

On Fri, Dec 5, 2008 at 12:07 PM, Michael McCandless <lucene@mikemccandless.com> wrote:

John Wang wrote:

My proposal is to add the suid to Serializable classes

That's too brittle.

If we do that, then what happens when we need to add a field to the
class (eg, in 2.9 we've replaced "inclusive" in RangeQuery with
"includeLower" and "includeUpper")?  The standard answer is you bump
the suid, but, then that breaks back compatibility.

Since we would still sometimes, unpredictably, break back
compatibility, no app could rely on it.  You can't have a "mostly
back compatible" promise.

So... we have to either 1) only support "live serialization" and
update the javadocs saying so, or 2) support full back compat of
serialized classes and spell out the actual policy, make thorough
tests for it, etc.

Mike



---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-dev-help@lucene.apache.org


------=_Part_131190_10495544.1228511403074--