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