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)));
           }
         }