ah, that makes sense.

Or we could also make the list of stuff it checks explicit.

classes.add( org.apache.solr.handler.AnalysisRequestHandler.class );
classes.add( org.apache.solr.handler.AnalysisRequestHandlerBase.class );
classes.add( org.apache.solr.handler.BinaryUpdateRequestHandler.class );
classes.add( org.apache.solr.handler.ContentStreamHandlerBase.class );
classes.add( org.apache.solr.handler.CSVRequestHandler.class );
classes.add( org.apache.solr.handler.DisMaxRequestHandler.class );
classes.add( org.apache.solr.handler.DocumentAnalysisRequestHandler.class );
classes.add( org.apache.solr.handler.DumpRequestHandler.class );
classes.add( org.apache.solr.handler.FieldAnalysisRequestHandler.class );
classes.add( org.apache.solr.handler.JsonUpdateRequestHandler.class );
classes.add( org.apache.solr.handler.MoreLikeThisHandler.class );
classes.add( org.apache.solr.handler.PingRequestHandler.class );
classes.add( org.apache.solr.handler.RequestHandlerBase.class );
classes.add( org.apache.solr.handler.SpellCheckerRequestHandler.class );
classes.add( org.apache.solr.handler.StandardRequestHandler.class );
classes.add( org.apache.solr.handler.XmlUpdateRequestHandler.class );
classes.add( org.apache.solr.handler.component.DebugComponent.class );
classes.add( org.apache.solr.handler.component.FacetComponent.class );
classes.add( org.apache.solr.handler.component.HighlightComponent.class );
classes.add( org.apache.solr.handler.component.MoreLikeThisComponent.class );
classes.add( org.apache.solr.handler.component.PivotFacetComponent.class );
classes.add( org.apache.solr.handler.component.QueryComponent.class );
classes.add( org.apache.solr.handler.component.QueryElevationComponent.class );
classes.add( org.apache.solr.handler.component.SearchComponent.class );
classes.add( org.apache.solr.handler.component.SearchHandler.class );
classes.add( org.apache.solr.handler.component.SpellCheckComponent.class );
classes.add( org.apache.solr.handler.component.StatsComponent.class );
classes.add( org.apache.solr.handler.component.TermsComponent.class );
classes.add( org.apache.solr.handler.component.TermVectorComponent.class );
classes.add( org.apache.solr.handler.component.DebugComponent.class );
classes.add( org.apache.solr.handler.component.FacetComponent.class );
classes.add( org.apache.solr.handler.component.HighlightComponent.class );
classes.add( org.apache.solr.handler.component.MoreLikeThisComponent.class );
classes.add( org.apache.solr.handler.component.PivotFacetComponent.class );
classes.add( org.apache.solr.handler.component.QueryComponent.class );
classes.add( org.apache.solr.handler.component.QueryElevationComponent.class );
classes.add( org.apache.solr.handler.component.SearchComponent.class );
classes.add( org.apache.solr.handler.component.SearchHandler.class );
classes.add( org.apache.solr.handler.component.SpellCheckComponent.class );
classes.add( org.apache.solr.handler.component.StatsComponent.class );
classes.add( org.apache.solr.handler.component.TermsComponent.class );
classes.add( org.apache.solr.handler.component.TermVectorComponent.class );
classes.add( org.apache.solr.handler.admin.AdminHandlers.class );
classes.add( org.apache.solr.handler.admin.CoreAdminHandler.class );
classes.add( org.apache.solr.handler.admin.LukeRequestHandler.class );
classes.add( org.apache.solr.handler.admin.PluginInfoHandler.class );
classes.add( org.apache.solr.handler.admin.PropertiesRequestHandler.class );
classes.add( org.apache.solr.handler.admin.ShowFileRequestHandler.class );
classes.add( org.apache.solr.handler.admin.SolrInfoMBeanHandler.class );
classes.add( org.apache.solr.handler.admin.SystemInfoHandler.class );
classes.add( org.apache.solr.handler.admin.ThreadDumpHandler.class );
classes.add( org.apache.solr.highlight.DefaultEncoder.class );
classes.add( org.apache.solr.highlight.GapFragmenter.class );
classes.add( org.apache.solr.highlight.HighlightingPluginBase.class );
classes.add( org.apache.solr.highlight.HtmlEncoder.class );
classes.add( org.apache.solr.highlight.HtmlFormatter.class );
classes.add( org.apache.solr.highlight.RegexFragmenter.class );
classes.add( org.apache.solr.highlight.ScoreOrderFragmentsBuilder.class );
classes.add( org.apache.solr.highlight.SimpleFragListBuilder.class );
classes.add( org.apache.solr.highlight.SimpleFragmentsBuilder.class );
classes.add( org.apache.solr.highlight.SingleFragListBuilder.class );
classes.add( org.apache.solr.highlight.SolrEncoder.class );
classes.add( org.apache.solr.highlight.SolrFormatter.class );
classes.add( org.apache.solr.highlight.SolrFragListBuilder.class );
classes.add( org.apache.solr.highlight.SolrFragmenter.class );
classes.add( org.apache.solr.highlight.SolrFragmentsBuilder.class );
classes.add( org.apache.solr.search.FastLRUCache.class );
classes.add( org.apache.solr.search.LRUCache.class );
classes.add( org.apache.solr.search.SolrCache.class );
classes.add( org.apache.solr.search.SolrFieldCacheMBean.class );
classes.add( org.apache.solr.search.SolrIndexSearcher.class );




On Mon, Oct 18, 2010 at 10:25 AM, Robert Muir <rcm...@gmail.com> wrote:
> I took a look at this test: I think i understand the problem now.
>
> Here's an example, it was causing TestReplicationHandler to fail, but
> i couldnt find any statics as to why, in any of the ReplicationHandler
> classes.
>
> So i added this hack:
>            // FIXME: Find the static/sysprop/file leakage here.
>            // If we call Class.forName(ReplicationHandler) here, its
> test will later fail
>            // when run inside the same JVM (-Dtests.threadspercpu=0),
> so something is wrong.
>            if (file.contains("ReplicationHandler"))
>              continue;
>
> Finally, i figured it out... the problem is that this test initializes
> static fields in *test classes too*
> So there are all kinds of statics in TestReplicationHandler for example...
>
> Perhaps the test would be less dangerous, if we changed this to:
>
>  // don't instantiate test classes
>  if (file.contains("Test"))
>     continue;
>
> On Mon, Oct 18, 2010 at 10:13 AM, Uwe Schindler <u...@thetaphi.de> wrote:
>> The problem is, that some classes initialize static fields (because
>> Class.forName() runs static initializers of classes). And that’s the whole
>> problem for some of the classes.
>>
>> Maybe we should reduce the test only to *some* example classes to test the
>> MBean logic, but not iterate all classes!
>>
>> Uwe
>>
>> -----
>> Uwe Schindler
>> H.-H.-Meier-Allee 63, D-28213 Bremen
>> http://www.thetaphi.de
>> eMail: u...@thetaphi.de
>>
>>> -----Original Message-----
>>> From: Ryan McKinley [mailto:ryan...@gmail.com]
>>> Sent: Monday, October 18, 2010 4:00 PM
>>> To: dev@lucene.apache.org
>>> Subject: Re: SolrInfoMBeanTest
>>>
>>> I will sheepishly step up and say... um, i wrote that....  a long while
>> ago.
>>>
>>> At the time some of the MInfoBeans returned null, and the we had tests
>> that
>>> covered most things except these getter.  This test (at the time) made
>> many of
>>> the simple classes have 100% coverage and had no side effects.
>>>
>>> I don't get why calling Class.forName( xxxxx ) would cause something to
>> later
>>> fail, but I have not objection to disabling the not very useful test
>>>
>>> ryan
>>>
>>>
>>>
>>> On Sun, Oct 17, 2010 at 3:40 PM, Uwe Schindler <u...@thetaphi.de> wrote:
>>> > Haha, maybe we found the "func" issue :-) Really bad test, why does it
>>> > need to instantiate. Does loading and inspecting the class is not
>>> > enough? Or does it init static props?
>>> >
>>> > -----
>>> > Uwe Schindler
>>> > H.-H.-Meier-Allee 63, D-28213 Bremen
>>> > http://www.thetaphi.de
>>> > eMail: u...@thetaphi.de
>>> >
>>> >
>>> >> -----Original Message-----
>>> >> From: ysee...@gmail.com [mailto:ysee...@gmail.com] On Behalf Of Yonik
>>> >> Seeley
>>> >> Sent: Sunday, October 17, 2010 9:35 PM
>>> >> To: dev@lucene.apache.org
>>> >> Subject: Re: SolrInfoMBeanTest
>>> >>
>>> >> Ha - going through and instantiating a ton of random classes does
>>> >> sound
>>> > like a
>>> >> good way to screw things up!
>>> >>
>>> >> +1 to disable.
>>> >>
>>> >> -Yonik
>>> >> http://www.lucidimagination.com
>>> >>
>>> >>
>>> >> On Sun, Oct 17, 2010 at 3:22 PM, Robert Muir <rcm...@gmail.com> wrote:
>>> >> > Can we disable this test? I don't understand the purpose of it, and
>>> >> > it seems to only cause other tests to fail.
>>> >> >
>>> >> > For example:
>>> >> >
>>> >> >    [junit] NOTE: all tests run in this JVM:
>>> >> >    [junit] [SolrInfoMBeanTest, TestGroupingSearch]
>>> >> >    [junit] ------------- ---------------- ---------------
>>> >> >    [junit] TEST org.apache.solr.TestGroupingSearch FAILED
>>> >> >
>>> >> > i already had to hack this test once to prevent
>>> >> > TestReplicationHandler from always failing:
>>> >> >
>>> >> >            // FIXME: Find the static/sysprop/file leakage here.
>>> >> >            // If we call Class.forName(ReplicationHandler) here,
>>> >> > its test will later fail
>>> >> >            // when run inside the same JVM
>>> >> > (-Dtests.threadspercpu=0), so something is wrong.
>>> >> >            if (file.contains("ReplicationHandler"))
>>> >> >              continue;
>>> >> >
>>> >> > the test seems really silly, it loads up everything in its
>>> >> > classpath and assertNotNull's against toString-type things, with
>>> >> > the description of "A simple test used to increase code coverage
>>> >> > for some standard things..."
>>> >> >
>>> >> > -------------------------------------------------------------------
>>> >> > -- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For
>>> >> > additional commands, e-mail: dev-h...@lucene.apache.org
>>> >> >
>>> >> >
>>> >>
>>> >> ---------------------------------------------------------------------
>>> >> To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For
>>> >> additional commands, e-mail: dev-h...@lucene.apache.org
>>> >
>>> >
>>> >
>>> > ---------------------------------------------------------------------
>>> > To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For
>>> > additional commands, e-mail: dev-h...@lucene.apache.org
>>> >
>>> >
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional
>>> commands, e-mail: dev-h...@lucene.apache.org
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
>> For additional commands, e-mail: dev-h...@lucene.apache.org
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
> For additional commands, e-mail: dev-h...@lucene.apache.org
>
>

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

Reply via email to