You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by us...@apache.org on 2010/10/18 17:26:46 UTC
svn commit: r1023845 -
/lucene/dev/trunk/solr/src/test/org/apache/solr/SolrInfoMBeanTest.java
Author: uschindler
Date: Mon Oct 18 15:26:46 2010
New Revision: 1023845
URL: http://svn.apache.org/viewvc?rev=1023845&view=rev
Log:
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!
Modified:
lucene/dev/trunk/solr/src/test/org/apache/solr/SolrInfoMBeanTest.java
Modified: lucene/dev/trunk/solr/src/test/org/apache/solr/SolrInfoMBeanTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/src/test/org/apache/solr/SolrInfoMBeanTest.java?rev=1023845&r1=1023844&r2=1023845&view=diff
==============================================================================
--- lucene/dev/trunk/solr/src/test/org/apache/solr/SolrInfoMBeanTest.java (original)
+++ lucene/dev/trunk/solr/src/test/org/apache/solr/SolrInfoMBeanTest.java Mon Oct 18 15:26:46 2010
@@ -41,7 +41,6 @@ public class SolrInfoMBeanTest extends L
* 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 L
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 L
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)));
}
}