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 2012/02/27 17:48:20 UTC
svn commit: r1294212 - in /lucene/dev/trunk/solr:
core/src/java/org/apache/solr/ core/src/java/org/apache/solr/cloud/
core/src/java/org/apache/solr/core/
core/src/java/org/apache/solr/handler/component/
core/src/java/org/apache/solr/search/ core/src/ja...
Author: yonik
Date: Mon Feb 27 16:48:19 2012
New Revision: 1294212
URL: http://svn.apache.org/viewvc?rev=1294212&view=rev
Log:
SOLR-3157: improve test logging
Added:
lucene/dev/trunk/solr/core/src/java/org/apache/solr/SolrLogFormatter.java (with props)
Modified:
lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/ZkController.java
lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/SolrCore.java
lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/SearchHandler.java
lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java
lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/PeerSync.java
lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/processor/LogUpdateProcessorFactory.java
lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/processor/UpdateRequestProcessorFactory.java
lucene/dev/trunk/solr/core/src/java/org/apache/solr/util/plugin/AbstractPluginLoader.java
lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/common/util/NamedList.java
Added: lucene/dev/trunk/solr/core/src/java/org/apache/solr/SolrLogFormatter.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/SolrLogFormatter.java?rev=1294212&view=auto
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/SolrLogFormatter.java (added)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/SolrLogFormatter.java Mon Feb 27 16:48:19 2012
@@ -0,0 +1,372 @@
+package org.apache.solr;
+
+
+import org.apache.solr.cloud.ZkController;
+import org.apache.solr.common.SolrException;
+import org.apache.solr.common.cloud.CloudState;
+import org.apache.solr.common.cloud.CoreState;
+import org.apache.solr.core.SolrCore;
+import org.apache.solr.request.SolrQueryRequest;
+import org.apache.solr.request.SolrRequestInfo;
+import org.slf4j.LoggerFactory;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.WeakHashMap;
+import java.util.logging.*;
+
+public class SolrLogFormatter extends Formatter {
+
+ /** Add this interface to a thread group and the string returned by
+ * getTag() will appear in log statements of any threads under that group.
+ */
+ public static interface TG {
+ public String getTag();
+ }
+
+ long startTime = System.currentTimeMillis();
+ long lastTime = startTime;
+ Map<Method, String> methodAlias = new HashMap<Method, String>();
+
+ public static class Method {
+ public String className;
+ public String methodName;
+
+ public Method(String className, String methodName) {
+ this.className = className;
+ this.methodName = methodName;
+ }
+
+ @Override
+ public int hashCode() {
+ return className.hashCode() + methodName.hashCode();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (!(obj instanceof Method)) return false;
+ Method other = (Method)obj;
+ return (className.equals(other.className) && methodName.equals(other.methodName));
+ }
+
+ @Override
+ public String toString() {
+ return className + '.' + methodName;
+ }
+ }
+
+
+
+
+ protected SolrLogFormatter() {
+ super();
+
+ methodAlias.put(new Method("org.apache.solr.update.processor.LogUpdateProcessor","finish"), "UPDATE");
+ methodAlias.put(new Method("org.apache.solr.core.SolrCore","execute"), "REQ");
+ }
+
+ public static class CoreInfo {
+ public static int maxCoreNum;
+ public String shortId;
+ public String url;
+ CoreState coreState; // should be fine to keep a hard reference to this
+ // CloudState cloudState; // should be fine to keep this hard reference since cloudstate is immutable and doesn't have pointers to anything heavyweight (like SolrCore, CoreContainer, etc)
+ }
+
+ Map<SolrCore, CoreInfo> coreInfoMap = new WeakHashMap<SolrCore, CoreInfo>(); // TODO: use something that survives across a core reload?
+
+ public Map<String,String> classAliases = new HashMap<String, String>();
+
+ @Override
+ public String format(LogRecord record) {
+ try {
+ return _format(record);
+ } catch (Throwable th) {
+ // logging swallows exceptions, so if we hit an exception we need to convert it to a string to see it
+ return "ERROR IN SolrLogFormatter! original message:" + record.getMessage() + "\n\tException: " + SolrException.toStr(th);
+ }
+ }
+
+
+ public void appendThread(StringBuilder sb, LogRecord record) {
+ Thread th = Thread.currentThread();
+
+
+/******
+ sb.append(" T=");
+ sb.append(th.getName()).append(' ');
+
+ // NOTE: tried creating a thread group around jetty but we seem to lose it and request
+ // threads are in the normal "main" thread group
+ ThreadGroup tg = th.getThreadGroup();
+ while (tg != null) {
+sb.append("(group_name=").append(tg.getName()).append(")");
+
+ if (tg instanceof TG) {
+ sb.append(((TG)tg).getTag());
+ sb.append('/');
+ }
+ try {
+ tg = tg.getParent();
+ } catch (Throwable e) {
+ tg = null;
+ }
+ }
+ ******/
+
+ // NOTE: LogRecord.getThreadID is *not* equal to Thread.getId()
+ sb.append(" T");
+ sb.append(th.getId());
+ }
+
+
+ public String _format(LogRecord record) {
+ String message = record.getMessage();
+
+ StringBuilder sb = new StringBuilder(message.length() + 80);
+
+ long now = record.getMillis();
+ long timeFromStart = now - startTime;
+ long timeSinceLast = now - lastTime;
+ lastTime = now;
+ String shortClassName = getShortClassName(record.getSourceClassName(), record.getSourceMethodName());
+
+/***
+ sb.append(timeFromStart).append(' ').append(timeSinceLast);
+ sb.append(' ');
+ sb.append(record.getSourceClassName()).append('.').append(record.getSourceMethodName());
+ sb.append(' ');
+ sb.append(record.getLevel());
+***/
+
+ SolrRequestInfo requestInfo = SolrRequestInfo.getRequestInfo();
+ SolrQueryRequest req = requestInfo == null ? null : requestInfo.getReq();
+ SolrCore core = req == null ? null : req.getCore();
+ ZkController zkController = null;
+ CoreInfo info = null;
+
+ if (core != null) {
+ info = coreInfoMap.get(core);
+ if (info == null) {
+ info = new CoreInfo();
+ info.shortId = "C"+Integer.toString(CoreInfo.maxCoreNum++);
+ coreInfoMap.put(core, info);
+
+ if (sb.length() == 0) sb.append("ASYNC ");
+ sb.append(" NEW_CORE "+info.shortId);
+ sb.append(" name=" + core.getName());
+ sb.append(" " + core);
+ }
+
+ if (zkController == null) {
+ zkController = core.getCoreDescriptor().getCoreContainer().getZkController();
+ }
+ if (zkController != null) {
+ if (info.url == null) {
+ info.url = zkController.getBaseUrl() + "/" + core.getName();
+ sb.append(" url="+info.url + " node="+zkController.getNodeName());
+ }
+
+ // look to see if local core state changed
+ CoreState coreState = zkController.getCoreState(core.getName());
+ if (coreState != info.coreState) {
+ sb.append(" " + info.shortId + "_STATE=" + coreState);
+ info.coreState = coreState;
+ }
+ }
+ }
+
+
+ if (sb.length() > 0) sb.append('\n');
+ sb.append(timeFromStart);
+
+// sb.append("\nL").append(record.getSequenceNumber()); // log number is useful for sequencing when looking at multiple parts of a log file, but ms since start should be fine.
+ appendThread(sb, record);
+
+
+ if (info != null) {
+ sb.append(' ').append(info.shortId); // core
+ } else if (zkController != null) {
+ // if we don't have info about the core, then at least try to do core container
+ sb.append(" P").append(zkController.getHostPort());
+ }
+
+ sb.append(' ').append(shortClassName);
+ if (record.getLevel() != Level.INFO) {
+ sb.append(' ').append(record.getLevel());
+ }
+
+ sb.append(' ');
+ appendMultiLineString(sb, message);
+ Throwable th = record.getThrown();
+ if (th != null) {
+ sb.append(' ');
+ String err = SolrException.toStr(th);
+ String ignoredMsg = SolrException.doIgnore(th, err);
+ if (ignoredMsg != null) {
+ sb.append(ignoredMsg);
+ } else {
+ sb.append(err);
+ }
+ }
+
+ sb.append('\n');
+
+ /*** Isn't core specific... prob better logged from zkController
+ if (info != null) {
+ CloudState cloudState = zkController.getCloudState();
+ if (info.cloudState != cloudState) {
+ // something has changed in the matrix...
+ sb.append(zkController.getBaseUrl() + " sees new CloudState:");
+ }
+ }
+ ***/
+
+ return sb.toString();
+ }
+
+ private Method classAndMethod = new Method(null,null); // don't need to be thread safe
+ private String getShortClassName(String name, String method) {
+ classAndMethod.className = name;
+ classAndMethod.methodName = method;
+
+ String out = methodAlias.get(classAndMethod);
+ if (out != null) return out;
+
+ StringBuilder sb = new StringBuilder();
+
+ int lastDot = name.lastIndexOf('.');
+ if (lastDot < 0) return name + '.' + method;
+
+ int prevIndex = -1;
+ for (;;) {
+ char ch = name.charAt(prevIndex + 1);
+ sb.append(ch);
+ int idx = name.indexOf('.', prevIndex+1);
+ ch = name.charAt(idx+1);
+ if (idx >= lastDot || Character.isUpperCase(ch)) {
+ sb.append(name.substring(idx));
+ break;
+ }
+ prevIndex = idx;
+ }
+
+ return sb.toString() + '.' + method;
+ }
+
+ private void appendMultiLineString(StringBuilder sb, String msg) {
+ int idx = msg.indexOf('\n');
+ if (idx < 0) {
+ sb.append(msg);
+ return;
+ }
+
+ int lastIdx = -1;
+ for (;;) {
+ if (idx < 0) {
+ sb.append(msg.substring(lastIdx+1));
+ break;
+ }
+ sb.append(msg.substring(lastIdx+1, idx));
+ sb.append("\n\t");
+ lastIdx = idx;
+ idx = msg.indexOf('\n',lastIdx+1);
+ }
+ }
+
+ @Override
+ public String getHead(Handler h) {
+ return super.getHead(h);
+ }
+
+ @Override
+ public String getTail(Handler h) {
+ return super.getTail(h);
+ }
+
+ @Override
+ public String formatMessage(LogRecord record) {
+ return format(record);
+ }
+
+
+
+ static ThreadLocal<String> threadLocal = new ThreadLocal<String>();
+
+ public static void main(String[] args) throws Exception {
+
+ Handler[] handlers = Logger.getLogger("").getHandlers();
+ boolean foundConsoleHandler = false;
+ for (int index = 0; index < handlers.length; index++) {
+ // set console handler to SEVERE
+ if (handlers[index] instanceof ConsoleHandler) {
+ handlers[index].setLevel(Level.ALL);
+ handlers[index].setFormatter(new SolrLogFormatter());
+ foundConsoleHandler = true;
+ }
+ }
+ if (!foundConsoleHandler) {
+ // no console handler found
+ System.err.println("No consoleHandler found, adding one.");
+ ConsoleHandler consoleHandler = new ConsoleHandler();
+ consoleHandler.setLevel(Level.ALL);
+ consoleHandler.setFormatter(new SolrLogFormatter());
+ Logger.getLogger("").addHandler(consoleHandler);
+ }
+
+
+
+ final org.slf4j.Logger log = LoggerFactory.getLogger(SolrLogFormatter.class);
+ log.error("HELLO");
+
+ ThreadGroup tg = new MyThreadGroup("YCS");
+
+ Thread th = new Thread(tg, "NEW_THREAD") {
+
+ @Override
+ public void run() {
+ try {
+ go();
+ } catch (Throwable e) {
+ e.printStackTrace();
+ }
+ }
+ };
+
+ th.start();
+ th.join();
+ }
+
+
+ static class MyThreadGroup extends ThreadGroup implements TG {
+ public MyThreadGroup(String name) {
+ super(name);
+ }
+ public String getTag() { return "HELLO"; }
+ }
+
+ public static void go() throws Exception {
+ final org.slf4j.Logger log = LoggerFactory.getLogger(SolrLogFormatter.class);
+
+ Thread thread1 = new Thread() {
+ @Override
+ public void run() {
+ threadLocal.set("from thread1");
+ log.error("InThread1");
+ }
+ };
+
+ Thread thread2 = new Thread() {
+ @Override
+ public void run() {
+ threadLocal.set("from thread2");
+ log.error("InThread2");
+ }
+ };
+
+ thread1.start();
+ thread2.start();
+ thread1.join();
+ thread2.join();
+ }
+}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/ZkController.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/ZkController.java?rev=1294212&r1=1294211&r2=1294212&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/ZkController.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/ZkController.java Mon Feb 27 16:48:19 2012
@@ -339,6 +339,10 @@ public final class ZkController {
public String getHostName() {
return hostName;
}
+
+ public String getHostPort() {
+ return localHostPort;
+ }
public SolrZkClient getZkClient() {
return zkClient;
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/SolrCore.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/SolrCore.java?rev=1294212&r1=1294211&r2=1294212&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/SolrCore.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/SolrCore.java Mon Feb 27 16:48:19 2012
@@ -1532,20 +1532,28 @@ public final class SolrCore implements S
NamedList<Object> toLog = rsp.getToLog();
// for back compat, we set these now just in case other code
// are expecting them during handleRequest
- toLog.add("webapp", req.getContext().get("webapp"));
+
+ // multiple webaps are no longer best practise
+ // toLog.add("webapp", req.getContext().get("webapp"));
+
toLog.add("path", req.getContext().get("path"));
toLog.add("params", "{" + req.getParamString() + "}");
handler.handleRequest(req,rsp);
setResponseHeaderValues(handler,req,rsp);
- if (log.isInfoEnabled()) {
- StringBuilder sb = new StringBuilder(logid);
+ if (log.isInfoEnabled() && toLog.size() > 0) {
+ StringBuilder sb = new StringBuilder();
for (int i=0; i<toLog.size(); i++) {
String name = toLog.getName(i);
Object val = toLog.getVal(i);
- sb.append(name).append("=").append(val).append(" ");
+ if ("path"==name || "params"==name) { //equals OK here
+ sb.append(val).append(' ');
+ } else {
+ sb.append(name).append('=').append(val).append(' ');
+ }
}
+
log.info(sb.toString());
}
@@ -1567,9 +1575,12 @@ public final class SolrCore implements S
}
responseHeader.add("status",status);
responseHeader.add("QTime",qtime);
- rsp.getToLog().add("status",status);
- rsp.getToLog().add("QTime",qtime);
-
+
+ if (rsp.getToLog().size() > 0) {
+ rsp.getToLog().add("status",status);
+ rsp.getToLog().add("QTime",qtime);
+ }
+
SolrParams params = req.getParams();
if( params.getBool(CommonParams.HEADER_ECHO_HANDLER, false) ) {
responseHeader.add("handler", handler.getName() );
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/SearchHandler.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/SearchHandler.java?rev=1294212&r1=1294211&r2=1294212&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/SearchHandler.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/SearchHandler.java Mon Feb 27 16:48:19 2012
@@ -131,12 +131,12 @@ public class SearchHandler extends Reque
dbgCmp = (DebugComponent) comp;
} else {
components.add(comp);
- log.info("Adding component:"+comp);
+ log.debug("Adding component:"+comp);
}
}
if (makeDebugLast == true && dbgCmp != null){
components.add(dbgCmp);
- log.info("Adding debug component:" + dbgCmp);
+ log.debug("Adding debug component:" + dbgCmp);
}
if(shfInfo ==null) {
shardHandlerFactory = core.getCoreDescriptor().getCoreContainer().getShardHandlerFactory();
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java?rev=1294212&r1=1294211&r2=1294212&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java Mon Feb 27 16:48:19 2012
@@ -79,6 +79,7 @@ public class SolrIndexSearcher extends I
private final SolrCore core;
private final IndexSchema schema;
private String indexDir;
+ private boolean debug = log.isDebugEnabled();
private final String name;
private long openTime = System.currentTimeMillis();
@@ -244,17 +245,20 @@ public class SolrIndexSearcher extends I
* In particular, the underlying reader and any cache's in use are closed.
*/
public void close() throws IOException {
- if (cachingEnabled) {
- StringBuilder sb = new StringBuilder();
- sb.append("Closing ").append(name);
- for (SolrCache cache : cacheList) {
- sb.append("\n\t");
- sb.append(cache);
+ if (debug) {
+ if (cachingEnabled) {
+ StringBuilder sb = new StringBuilder();
+ sb.append("Closing ").append(name);
+ for (SolrCache cache : cacheList) {
+ sb.append("\n\t");
+ sb.append(cache);
+ }
+ log.debug(sb.toString());
+ } else {
+ if (debug) log.debug("Closing " + name);
}
- log.info(sb.toString());
- } else {
- log.debug("Closing " + name);
}
+
core.getInfoRegistry().remove(name);
// super.close();
@@ -1897,13 +1901,12 @@ public class SolrIndexSearcher extends I
*/
public void warm(SolrIndexSearcher old) throws IOException {
// Make sure this is first! filters can help queryResults execute!
- boolean logme = log.isInfoEnabled();
long warmingStartTime = System.currentTimeMillis();
// warm the caches in order...
ModifiableSolrParams params = new ModifiableSolrParams();
params.add("warming","true");
for (int i=0; i<cacheList.length; i++) {
- if (logme) log.info("autowarming " + this + " from " + old + "\n\t" + old.cacheList[i]);
+ if (debug) log.debug("autowarming " + this + " from " + old + "\n\t" + old.cacheList[i]);
SolrQueryRequest req = new LocalSolrQueryRequest(core,params) {
@@ -1923,7 +1926,7 @@ public class SolrIndexSearcher extends I
}
}
- if (logme) log.info("autowarming result for " + this + "\n\t" + this.cacheList[i]);
+ if (debug) log.debug("autowarming result for " + this + "\n\t" + this.cacheList[i]);
}
warmupTime = System.currentTimeMillis() - warmingStartTime;
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/PeerSync.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/PeerSync.java?rev=1294212&r1=1294211&r2=1294212&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/PeerSync.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/PeerSync.java Mon Feb 27 16:48:19 2012
@@ -184,6 +184,12 @@ public class PeerSync {
log.info(msg() + "START replicas=" + replicas + " nUpdates=" + nUpdates);
+ // TODO: does it ever make sense to allow sync when buffering or applying buffered? Someone might request that we do it...
+ if (!(ulog.getState() == UpdateLog.State.ACTIVE || ulog.getState()==UpdateLog.State.REPLAYING)) {
+ log.error(msg() + "ERROR, update log not in ACTIVE or REPLAY state. " + ulog);
+ // return false;
+ }
+
if (debug) {
if (startingVersions != null) {
log.debug(msg() + "startingVersions=" + startingVersions.size() + " " + startingVersions);
@@ -396,7 +402,7 @@ public class PeerSync {
private boolean requestUpdates(ShardResponse srsp, List<Long> toRequest) {
String replica = srsp.getShardRequest().shards[0];
- log.info(msg() + "Requesting updates from " + replica + " versions=" + toRequest);
+ log.info(msg() + "Requesting updates from " + replica + "n=" + toRequest.size() + " versions=" + toRequest);
// reuse our original request object
ShardRequest sreq = srsp.getShardRequest();
@@ -426,6 +432,7 @@ public class PeerSync {
ModifiableSolrParams params = new ModifiableSolrParams();
params.set(DistributedUpdateProcessor.SEEN_LEADER, true);
+params.set("peersync",true); // nocommit
SolrQueryRequest req = new LocalSolrQueryRequest(uhandler.core, params);
SolrQueryResponse rsp = new SolrQueryResponse();
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/processor/LogUpdateProcessorFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/processor/LogUpdateProcessorFactory.java?rev=1294212&r1=1294211&r2=1294212&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/processor/LogUpdateProcessorFactory.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/processor/LogUpdateProcessorFactory.java Mon Feb 27 16:48:19 2012
@@ -46,7 +46,6 @@ import org.slf4j.LoggerFactory;
public class LogUpdateProcessorFactory extends UpdateRequestProcessorFactory {
int maxNumToLog = 10;
-
@Override
public void init( final NamedList args ) {
if( args != null ) {
@@ -191,6 +190,21 @@ class LogUpdateProcessor extends UpdateR
// be logged by SolrCore
// if id lists were truncated, show how many more there were
+
+ NamedList<Object> stdLog = rsp.getToLog();
+
+ StringBuilder sb = new StringBuilder();
+ for (int i=0; i<stdLog.size(); i++) {
+ String name = stdLog.getName(i);
+ Object val = stdLog.getVal(i);
+ if ("path"==name || "params"==name) { //equals OK here
+ sb.append(val).append(' ');
+ } else {
+ sb.append(name).append('=').append(val).append(' ');
+ }
+ }
+ stdLog.clear(); // make it so SolrCore.exec won't log this again
+
if (adds != null && numAdds > maxNumToLog) {
adds.add("... (" + numAdds + " adds)");
}
@@ -198,7 +212,9 @@ class LogUpdateProcessor extends UpdateR
deletes.add("... (" + numDeletes + " deletes)");
}
long elapsed = rsp.getEndTime() - req.getStartTime();
- log.info( ""+toLog + " 0 " + (elapsed) );
+
+ sb.append(toLog).append(" 0 ").append(elapsed);
+ log.info(sb.toString());
}
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/processor/UpdateRequestProcessorFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/processor/UpdateRequestProcessorFactory.java?rev=1294212&r1=1294211&r2=1294212&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/processor/UpdateRequestProcessorFactory.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/processor/UpdateRequestProcessorFactory.java Mon Feb 27 16:48:19 2012
@@ -39,6 +39,5 @@ public abstract class UpdateRequestProce
// could process the Node
}
- abstract public UpdateRequestProcessor getInstance(
- SolrQueryRequest req, SolrQueryResponse rsp, UpdateRequestProcessor next );
+ abstract public UpdateRequestProcessor getInstance(SolrQueryRequest req, SolrQueryResponse rsp, UpdateRequestProcessor next );
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/util/plugin/AbstractPluginLoader.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/util/plugin/AbstractPluginLoader.java?rev=1294212&r1=1294211&r2=1294212&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/util/plugin/AbstractPluginLoader.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/util/plugin/AbstractPluginLoader.java Mon Feb 27 16:48:19 2012
@@ -139,7 +139,7 @@ public abstract class AbstractPluginLoad
String defaultStr = DOMUtil.getAttr(node,"default", null );
T plugin = create(loader, name, className, node );
- log.info("created " + ((name != null) ? name : "") + ": " + plugin.getClass().getName());
+ log.debug("created " + ((name != null) ? name : "") + ": " + plugin.getClass().getName());
// Either initialize now or wait till everything has been registered
if( preRegister ) {
@@ -209,7 +209,7 @@ public abstract class AbstractPluginLoad
String name = DOMUtil.getAttr(node, "name", requireName ? type : null);
String className = DOMUtil.getAttr(node, "class", type);
plugin = create(loader, name, className, node);
- log.info("created " + name + ": " + plugin.getClass().getName());
+ log.debug("created " + name + ": " + plugin.getClass().getName());
// Either initialize now or wait till everything has been registered
if (preRegister) {
Modified: lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/common/util/NamedList.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/common/util/NamedList.java?rev=1294212&r1=1294211&r2=1294212&view=diff
==============================================================================
--- lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/common/util/NamedList.java (original)
+++ lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/common/util/NamedList.java Mon Feb 27 16:48:19 2012
@@ -395,6 +395,11 @@ public class NamedList<T> implements Clo
return null;
}
+
+ public void clear() {
+ nvPairs.clear();
+ }
+
@Override
public int hashCode() {
return nvPairs.hashCode();