lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Simon Willnauer <>
Subject Re: why is MTQ#getEnum protected
Date Wed, 15 Feb 2012 13:12:51 GMT
On Wed, Feb 15, 2012 at 11:55 AM, Robert Muir <> wrote:
> On Wed, Feb 15, 2012 at 5:18 AM, Simon Willnauer
> <> wrote:
>> hey guys, I am working on different rewrite methods etc. and the fact
>> that getEnum is protected drives me nuts. I always have to put stuff
>> into the package if I want to access this method and even
>> further this only works if I am loaded by the same classloader so if
>> somebody wants to write a super smart RewriteMethod and they are
>> running in a tomcat etc. they could get in big trouble. Can we make
>> this public?
> Wait:  lets rephrase the question 'why should it be public?'

well in my case it should be public because I simply wanna implement a
rewrite method as well as a related consumer of the MTQ. Putting
classes in a package seems odd for such a essential
> whats the big trouble with tomcat? I've used tomcat with code that
> uses package-private methods before, it works fine. Do you have a test
> case where it fails?

I confused something here, sorry. this only applies if you want to
subclass a package private class, but the general problem is not
tomcat. I should have phrased it differently. if you have two jars A
(lucene-core.jar) and B (my-custom-code.jar) and B contains a Class
that subclasses a package private class from A it works only as long
as A and B are loaded by the same classloader. if not you get a
ClassNotFound exception....

> If so, that seems like a tomcat bug.
> I think this is pretty expert... whats wrong with package private
> access for serious-expert stuff?

I don't think experts need to put classes in o.a.l packages to get
access to a feature
> Sneaky bugs can happen in MTQ by making something visible/non-final:
> stuff like LUCENE-3238... I think we should be careful.

I agree but making this particular method public is hardly causing any
sideeffects or do I miss something?

> --

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message