Doug: 1) "Incrementally upgrading distributed systems has, at least in the past, been outside the scope of Lucene" - That's good to know. Is it also out of the scope for distributed lucene effort (if it is still happening)?
2) I used the word broken to describe what happened for our deployment. I will try to use less harsh words when addressing lucene in the future. 3) " If you think that's trivial, then please pursue it and show us how trivial it is." - My proposal is to add the suid to Serializable classes, if you don't think that's trivial, many IDEs doe that for you. I think your main concern is that this is not the perfect solution to this problem, but it does provide better behavior than what it is now IMO. I understand we have discussed earlier in the thread there are cases where adding suid does not work. Given many of these classes are rather static, I don't share your concern. 4) "You developed based on some very optimistic guesses about some unstated aspects" - this is developed based on our understanding of Serializable without Lucene documentation discouraging us doing so. We also interpreted the fact RemoteSearcher being part of the package is an example of a valid use-case. The JOSS protocol is designed to handle versioning (although not perfectly) We didn't think that was risky, obviously in hindsight it is. But I do find it hard to believe it is something the author of these classes had in mind when Serializable interface was implemented. This is getting into a philosophical discussion on Java Serialization, and how it pertains to lucene. I don't see any resolution in the near future. Moving forward, we'd be happy to provide patches given the agreed solution. There is no reason to provide code patches if it is decided only documentation needs to change. (from what you have outlined, I interpret it being only documentation changes) Also, if you find us addressing this issue being a hassle, e.g. addressing serialization in lucene is an incorrect thing to do, feel free to let us know and we can close the bug and terminate the thread. Thanks -John On Fri, Dec 5, 2008 at 9:18 AM, Doug Cutting <[EMAIL PROTECTED]> wrote: > John Wang wrote: > >> Thus we are enforcing users that care about Serialization to use the >> release jar. >> > > We already encourage folks to use a release jar if possible. So this is > not a big change. Also, if folks choose to build their own jar, then they > are expected to use that same jar everywhere, effectively making their own > release. That doesn't seem unreasonable to me. Incrementally upgrading > distributed systems has, at least in the past, been outside the scope of > Lucene. > > 3) Clean up the serialization story, either add SUID or implement >> Externalizable for some classes within Lucene that implements Serializable: >> >> From what I am told, this is too much work for the committers. >> > > Not that it's too much work today, but that it adds an ongoing burden and > we should take this on cautiously if at all. If we want to go this way we'd > need to: > > - document precisely which classes we'll evolve back-compatibly; > - document the releases (major? minor?) that will be compatible; and > - provide a test suite that validates this. > > As a side note, we should probably move the back-compatibility > documentation from the wiki to the project website. This would permit > patches to it, among other things. > > http://wiki.apache.org/lucene-java/BackwardsCompatibility > > I hope you guys at least agree with me with the way it is currently, the >> serialization story is broken, whether in documentation or in code. >> > > Documenting an unstated assumption is a good thing to do, especially when > not everyone seems to share the assumption, but "broken" seems a bit strong > here. > > I see the disagreement being its severity, and whether it is a trivial >> fix, which I have learned it is not really my place to say. >> > > I've outlined above what I think would be required. If you think that's > trivial, then please pursue it and show us how trivial it is. The patch > provided thus far is incomplete. > > Please do understand this is not a far-fetched, made-up use-case, we are >> running into this in production, and we are developing in accordance to >> lucene documentation. >> > > You developed based on some very optimistic guesses about some unstated > aspects. In Java, implementing Serializeable alone does not generally > provide any cross-version guarantees. Assuming that it did was risky. > > Doug > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > >