From fa603c9f7f425ff3f3c972a47dc33fdbaf7d1171 Mon Sep 17 00:00:00 2001 From: Uwe Schindler Date: Mon, 18 Oct 2010 15:26:46 +0000 Subject: [PATCH] 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 --- .../test/org/apache/solr/SolrInfoMBeanTest.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/solr/src/test/org/apache/solr/SolrInfoMBeanTest.java b/solr/src/test/org/apache/solr/SolrInfoMBeanTest.java index 5be10ec9175..f3d394c20ad 100644 --- a/solr/src/test/org/apache/solr/SolrInfoMBeanTest.java +++ b/solr/src/test/org/apache/solr/SolrInfoMBeanTest.java @@ -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 classes = new ArrayList(); classes.addAll(getClassesForPackage(StandardRequestHandler.class.getPackage().getName())); @@ -91,7 +90,14 @@ public class SolrInfoMBeanTest extends LuceneTestCase String path = pckgname.replace('.', '/'); Enumeration 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 classes = new ArrayList(); @@ -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))); } }