Reenable the test: The bug was that all classes (even test classes) were handled as SolrInfoMBeans, so the test loaded all classes. Some tests initialized statics at the wrong time. This patch adds a check, that only build/solr classes are loaded by classloader.

If there are still problems, we may have solr core classes, that initialize statics in a wrong way. In this case we have to fix those, these are real bugs!

git-svn-id: https://svn.apache.org/repos/asf/lucene/dev/trunk@1023845 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Uwe Schindler 2010-10-18 15:26:46 +00:00
parent abbd3f0e4d
commit fa603c9f7f
1 changed files with 8 additions and 8 deletions

View File

@ -41,7 +41,6 @@ public class SolrInfoMBeanTest extends LuceneTestCase
* Gets a list of everything we can find in the classpath and makes sure it has
* a name, description, etc...
*/
@Ignore("meddles with unrelated tests")
public void testCallMBeanInfo() throws Exception {
List<Class> classes = new ArrayList<Class>();
classes.addAll(getClassesForPackage(StandardRequestHandler.class.getPackage().getName()));
@ -91,7 +90,14 @@ public class SolrInfoMBeanTest extends LuceneTestCase
String path = pckgname.replace('.', '/');
Enumeration<URL> resources = cld.getResources(path);
while (resources.hasMoreElements()) {
directories.add(new File(resources.nextElement().toURI()));
final File f = new File(resources.nextElement().toURI());
// only iterate classes from the core, not the tests
if (!f.toString().contains("build" + File.separator + "solr"))
continue;
// extra security :-)
if (f.toString().contains("tests"))
continue;
directories.add(f);
}
ArrayList<Class> classes = new ArrayList<Class>();
@ -100,12 +106,6 @@ public class SolrInfoMBeanTest extends LuceneTestCase
String[] files = directory.list();
for (String file : files) {
if (file.endsWith(".class")) {
// 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;
classes.add(Class.forName(pckgname + '.' + file.substring(0, file.length() - 6)));
}
}