You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by yo...@apache.org on 2010/10/19 19:55:29 UTC

svn commit: r1024339 - in /lucene/dev/trunk/solr: ./ src/common/org/apache/solr/common/util/ src/java/org/apache/solr/core/ src/java/org/apache/solr/request/ src/java/org/apache/solr/search/ src/test/org/apache/solr/

Author: yonik
Date: Tue Oct 19 17:55:28 2010
New Revision: 1024339

URL: http://svn.apache.org/viewvc?rev=1024339&view=rev
Log:
revert accidental test related commits

Added:
    lucene/dev/trunk/solr/src/test/org/apache/solr/SolrInfoMBeanTest.java   (with props)
Modified:
    lucene/dev/trunk/solr/src/common/org/apache/solr/common/util/ConcurrentLRUCache.java
    lucene/dev/trunk/solr/src/java/org/apache/solr/core/QuerySenderListener.java
    lucene/dev/trunk/solr/src/java/org/apache/solr/request/SolrQueryRequestBase.java
    lucene/dev/trunk/solr/src/java/org/apache/solr/search/SolrIndexSearcher.java
    lucene/dev/trunk/solr/src/test/org/apache/solr/SolrTestCaseJ4.java
    lucene/dev/trunk/solr/testlogging.properties

Modified: lucene/dev/trunk/solr/src/common/org/apache/solr/common/util/ConcurrentLRUCache.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/src/common/org/apache/solr/common/util/ConcurrentLRUCache.java?rev=1024339&r1=1024338&r2=1024339&view=diff
==============================================================================
--- lucene/dev/trunk/solr/src/common/org/apache/solr/common/util/ConcurrentLRUCache.java (original)
+++ lucene/dev/trunk/solr/src/common/org/apache/solr/common/util/ConcurrentLRUCache.java Tue Oct 19 17:55:28 2010
@@ -59,8 +59,6 @@ public class ConcurrentLRUCache<K,V> {
   public ConcurrentLRUCache(int upperWaterMark, final int lowerWaterMark, int acceptableWatermark,
                             int initialSize, boolean runCleanupThread, boolean runNewThreadForCleanup,
                             EvictionListener<K,V> evictionListener) {
-log.info("new ConcurrentLRUCache: " + this);
-
     if (upperWaterMark < 1) throw new IllegalArgumentException("upperWaterMark must be > 0");
     if (lowerWaterMark >= upperWaterMark)
       throw new IllegalArgumentException("lowerWaterMark must be  < upperWaterMark");
@@ -502,9 +500,8 @@ log.info("new ConcurrentLRUCache: " + th
     }
   }
 
- private volatile boolean isDestroyed =  false;
+ private boolean isDestroyed =  false;
   public void destroy() {
-    log.info("destroying " + this);
     try {
       if(cleanupThread != null){
         cleanupThread.stopThread();
@@ -610,7 +607,7 @@ log.info("new ConcurrentLRUCache: " + th
   protected void finalize() throws Throwable {
     try {
       if(!isDestroyed){
-        log.error("ConcurrentLRUCache was not destroyed prior to finalize(), indicates a bug -- POSSIBLE RESOURCE LEAK!!! - " + this);
+        log.error("ConcurrentLRUCache was not destroyed prior to finalize(), indicates a bug -- POSSIBLE RESOURCE LEAK!!!");
         destroy();
       }
     } finally {

Modified: lucene/dev/trunk/solr/src/java/org/apache/solr/core/QuerySenderListener.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/src/java/org/apache/solr/core/QuerySenderListener.java?rev=1024339&r1=1024338&r2=1024339&view=diff
==============================================================================
--- lucene/dev/trunk/solr/src/java/org/apache/solr/core/QuerySenderListener.java (original)
+++ lucene/dev/trunk/solr/src/java/org/apache/solr/core/QuerySenderListener.java Tue Oct 19 17:55:28 2010
@@ -45,7 +45,7 @@ class QuerySenderListener extends Abstra
         NamedList params = addEventParms(currentSearcher, nlst);
         LocalSolrQueryRequest req = new LocalSolrQueryRequest(core,params) {
           @Override public SolrIndexSearcher getSearcher() { return searcher; }
-          // @Override public void close() { }
+          @Override public void close() { }
         };
 
         SolrQueryResponse rsp = new SolrQueryResponse();

Modified: lucene/dev/trunk/solr/src/java/org/apache/solr/request/SolrQueryRequestBase.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/src/java/org/apache/solr/request/SolrQueryRequestBase.java?rev=1024339&r1=1024338&r2=1024339&view=diff
==============================================================================
--- lucene/dev/trunk/solr/src/java/org/apache/solr/request/SolrQueryRequestBase.java (original)
+++ lucene/dev/trunk/solr/src/java/org/apache/solr/request/SolrQueryRequestBase.java Tue Oct 19 17:55:28 2010
@@ -232,22 +232,8 @@ public abstract class SolrQueryRequestBa
       searcherHolder.decref();
       searcherHolder = null;
     }
-    allocator = null;
   }
 
-  public volatile Exception allocator;
-  {
-    allocator = new RuntimeException("WhoAmI");
-    allocator.fillInStackTrace();
-  }
-  @Override
-  protected void finalize() throws Throwable {
-    if (allocator != null) {
-      SolrException.log(SolrCore.log, "MISSING CLOSE for req allocated at ", allocator);
-    }
-  }
-
-
   /** A Collection of ContentStreams passed to the request
    */
   public Iterable<ContentStream> getContentStreams() {
@@ -266,6 +252,4 @@ public abstract class SolrQueryRequestBa
     return this.getClass().getSimpleName() + '{' + params + '}';
   }
 
-
-
 }

Modified: lucene/dev/trunk/solr/src/java/org/apache/solr/search/SolrIndexSearcher.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/src/java/org/apache/solr/search/SolrIndexSearcher.java?rev=1024339&r1=1024338&r2=1024339&view=diff
==============================================================================
--- lucene/dev/trunk/solr/src/java/org/apache/solr/search/SolrIndexSearcher.java (original)
+++ lucene/dev/trunk/solr/src/java/org/apache/solr/search/SolrIndexSearcher.java Tue Oct 19 17:55:28 2010
@@ -37,7 +37,6 @@ import org.apache.lucene.util.OpenBitSet
 import java.io.IOException;
 import java.net.URL;
 import java.util.*;
-import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.atomic.AtomicLong;
 
 import org.apache.solr.search.function.ValueSource;
@@ -58,8 +57,6 @@ public class SolrIndexSearcher extends I
   public static final AtomicLong numOpens = new AtomicLong();
   public static final AtomicLong numCloses = new AtomicLong();
 
-  public static Map<SolrIndexSearcher, Throwable> openSearchers = new ConcurrentHashMap<SolrIndexSearcher, Throwable>();
-
 
   private static Logger log = LoggerFactory.getLogger(SolrIndexSearcher.class);
   private final SolrCore core;
@@ -141,7 +138,6 @@ public class SolrIndexSearcher extends I
 
   public SolrIndexSearcher(SolrCore core, IndexSchema schema, String name, IndexReader r, boolean closeReader, boolean enableCache) {
     super(wrap(r));
-openSearchers.put(this, new RuntimeException("SearcherAlloc").fillInStackTrace());
     this.reader = (SolrIndexReader)super.getIndexReader();
     this.core = core;
     this.schema = schema;
@@ -232,7 +228,6 @@ openSearchers.put(this, new RuntimeExcep
    * In particular, the underlying reader and any cache's in use are closed.
    */
   public void close() throws IOException {
-    openSearchers.remove(this);
     if (cachingEnabled) {
       StringBuilder sb = new StringBuilder();
       sb.append("Closing ").append(name);

Added: 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=1024339&view=auto
==============================================================================
--- lucene/dev/trunk/solr/src/test/org/apache/solr/SolrInfoMBeanTest.java (added)
+++ lucene/dev/trunk/solr/src/test/org/apache/solr/SolrInfoMBeanTest.java Tue Oct 19 17:55:28 2010
@@ -0,0 +1,115 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.solr;
+
+import org.apache.lucene.util.LuceneTestCase;
+import org.apache.solr.core.SolrInfoMBean;
+import org.apache.solr.handler.StandardRequestHandler;
+import org.apache.solr.handler.admin.LukeRequestHandler;
+import org.apache.solr.handler.component.SearchComponent;
+import org.apache.solr.handler.component.SearchHandler;
+import org.apache.solr.highlight.DefaultSolrHighlighter;
+import org.apache.solr.search.LRUCache;
+import org.junit.Ignore;
+
+import java.io.File;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Enumeration;
+import java.util.List;
+
+/**
+ * A simple test used to increase code coverage for some standard things...
+ */
+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...
+   */
+  public void testCallMBeanInfo() throws Exception {
+    List<Class> classes = new ArrayList<Class>();
+    classes.addAll(getClassesForPackage(StandardRequestHandler.class.getPackage().getName()));
+    classes.addAll(getClassesForPackage(SearchHandler.class.getPackage().getName()));
+    classes.addAll(getClassesForPackage(SearchComponent.class.getPackage().getName()));
+    classes.addAll(getClassesForPackage(LukeRequestHandler.class.getPackage().getName()));
+    classes.addAll(getClassesForPackage(DefaultSolrHighlighter.class.getPackage().getName()));
+    classes.addAll(getClassesForPackage(LRUCache.class.getPackage().getName()));
+   // System.out.println(classes);
+    
+    int checked = 0;
+    for( Class clazz : classes ) {
+      if( SolrInfoMBean.class.isAssignableFrom( clazz ) ) {
+        try {
+          SolrInfoMBean info = (SolrInfoMBean)clazz.newInstance();
+          
+          //System.out.println( info.getClass() );
+          assertNotNull( info.getName() );
+          assertNotNull( info.getDescription() );
+          assertNotNull( info.getSource() );
+          assertNotNull( info.getSourceId() );
+          assertNotNull( info.getVersion() );
+          assertNotNull( info.getCategory() );
+
+          if( info instanceof LRUCache ) {
+            continue;
+          }
+          
+          assertNotNull( info.toString() );
+          // increase code coverage...
+          assertNotNull( info.getDocs() + "" );
+          assertNotNull( info.getStatistics()+"" );
+          checked++;
+        }
+        catch( InstantiationException ex ) {
+          // expected...
+          //System.out.println( "unable to initalize: "+clazz );
+        }
+      }
+    }
+    assertTrue( "there are at least 10 SolrInfoMBean that should be found in the classpath, found " + checked, checked > 10 );
+  }
+  
+  static final String FOLDER = File.separator + "build" + File.separator + "solr" + File.separator + "org" + File.separator + "apache" + File.separator + "solr" + File.separator;
+
+  private static List<Class> getClassesForPackage(String pckgname) throws Exception {
+    ArrayList<File> directories = new ArrayList<File>();
+    ClassLoader cld = Thread.currentThread().getContextClassLoader();
+    String path = pckgname.replace('.', '/');
+    Enumeration<URL> resources = cld.getResources(path);
+    while (resources.hasMoreElements()) {
+      final File f = new File(resources.nextElement().toURI());
+      // only iterate classes from the core, not the tests (must be in dir "/build/solr/org"
+      if (!f.toString().contains(FOLDER))
+        continue;
+      directories.add(f);
+    }
+      
+    ArrayList<Class> classes = new ArrayList<Class>();
+    for (File directory : directories) {
+      if (directory.exists()) {
+        String[] files = directory.list();
+        for (String file : files) {
+          if (file.endsWith(".class")) {
+             classes.add(Class.forName(pckgname + '.' + file.substring(0, file.length() - 6)));
+          }
+        }
+      }
+    }
+    return classes;
+  }
+}

Propchange: lucene/dev/trunk/solr/src/test/org/apache/solr/SolrInfoMBeanTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: lucene/dev/trunk/solr/src/test/org/apache/solr/SolrInfoMBeanTest.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Modified: lucene/dev/trunk/solr/src/test/org/apache/solr/SolrTestCaseJ4.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/src/test/org/apache/solr/SolrTestCaseJ4.java?rev=1024339&r1=1024338&r2=1024339&view=diff
==============================================================================
--- lucene/dev/trunk/solr/src/test/org/apache/solr/SolrTestCaseJ4.java (original)
+++ lucene/dev/trunk/solr/src/test/org/apache/solr/SolrTestCaseJ4.java Tue Oct 19 17:55:28 2010
@@ -30,7 +30,6 @@ import org.apache.solr.core.SolrConfig;
 import org.apache.solr.request.LocalSolrQueryRequest;
 import org.apache.solr.request.SolrQueryRequest;
 import org.apache.solr.search.SolrIndexSearcher;
-import org.apache.solr.util.RefCounted;
 import org.apache.solr.util.TestHarness;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
@@ -45,7 +44,6 @@ import java.io.StringWriter;
 import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.List;
-import java.util.Map;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.fail;
@@ -66,10 +64,6 @@ public abstract class SolrTestCaseJ4 ext
   public static void afterClassSolrTestCase() throws Exception {
     deleteCore();
     resetExceptionIgnores();
-    for (Map.Entry<SolrIndexSearcher,Throwable> entry : SolrIndexSearcher.openSearchers.entrySet()) {
-      log.error("ERROR SEARCHER="+entry.getKey());
-      SolrException.log(log, "SEARCHER ALLOCED AT ", entry.getValue());
-    }
   }
 
   @Override
@@ -244,10 +238,6 @@ public abstract class SolrTestCaseJ4 ext
               ("standard",0,20,"version","2.2");
     }
     log.info("####initCore end");
-
-    RefCounted<SolrIndexSearcher> holder = h.getCore().getSearcher();
-    log.info("START SEARCHER REFCOUNT=" + (holder.getRefcount()-1) + " instance="+holder.get());
-    holder.decref();
   }
 
   /** Subclasses that override setUp can optionally call this method
@@ -274,13 +264,7 @@ public abstract class SolrTestCaseJ4 ext
    */
   public static void deleteCore() throws Exception {
     log.info("###deleteCore" );
-    RefCounted<SolrIndexSearcher> holder = null;
-
-    if (h != null) {
-      holder = h.getCore().getSearcher();
-      log.info("END SEARCHER REFCOUNT=" + (holder.getRefcount()-1) + " instance="+holder.get());
-      h.close();
-    }
+    if (h != null) { h.close(); }
     if (dataDir != null) {
       String skip = System.getProperty("solr.test.leavedatadir");
       if (null != skip && 0 != skip.trim().length()) {
@@ -302,12 +286,6 @@ public abstract class SolrTestCaseJ4 ext
     lrf = null;
     configString = schemaString = null;
 
-
-    if (holder != null) {
-      log.info("FINAL SEARCHER REFCOUNT=" + (holder.getRefcount()-1) + " instance="+holder.get());
-      holder.decref();
-    }
-
     endTrackingSearchers();
   }
 

Modified: lucene/dev/trunk/solr/testlogging.properties
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/testlogging.properties?rev=1024339&r1=1024338&r2=1024339&view=diff
==============================================================================
--- lucene/dev/trunk/solr/testlogging.properties (original)
+++ lucene/dev/trunk/solr/testlogging.properties Tue Oct 19 17:55:28 2010
@@ -1,4 +1,4 @@
 handlers=java.util.logging.ConsoleHandler
-.level=INFO
+.level=SEVERE
 java.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter