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 2013/01/03 04:48:02 UTC

svn commit: r1428156 - in /lucene/dev/trunk/solr/core/src/java/org/apache/solr: core/Diagnostics.java update/SolrCmdDistributor.java

Author: yonik
Date: Thu Jan  3 03:48:02 2013
New Revision: 1428156

URL: http://svn.apache.org/viewvc?rev=1428156&view=rev
Log:
tests: add test hook for SolrCmdDistributor error

Modified:
    lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/Diagnostics.java
    lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/SolrCmdDistributor.java

Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/Diagnostics.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/Diagnostics.java?rev=1428156&r1=1428155&r2=1428156&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/Diagnostics.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/Diagnostics.java Thu Jan  3 03:48:02 2013
@@ -26,6 +26,18 @@ import java.lang.management.ThreadInfo;
 public class Diagnostics {
   protected static Logger log = LoggerFactory.getLogger(Diagnostics.class);
 
+  public interface Callable {
+    public void call(Object... data);  // data depends on the context
+  }
+
+  public static void call(Callable callable, Object... data) {
+    try {
+      callable.call(data);
+    } catch (Throwable th) {
+      log.error("TEST HOOK EXCEPTION", th);
+    }
+  }
+
   public static void logThreadDumps(String message) {
     StringBuilder sb = new StringBuilder(32768);
     if (message == null) message = "============ THREAD DUMP REQUESTED ============";
@@ -39,4 +51,5 @@ public class Diagnostics {
     log.error(sb.toString());
   }
 
+
 }

Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/SolrCmdDistributor.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/SolrCmdDistributor.java?rev=1428156&r1=1428155&r2=1428156&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/SolrCmdDistributor.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/SolrCmdDistributor.java Thu Jan  3 03:48:02 2013
@@ -40,6 +40,7 @@ import org.apache.solr.common.SolrExcept
 import org.apache.solr.common.cloud.ZkCoreNodeProps;
 import org.apache.solr.common.params.ModifiableSolrParams;
 import org.apache.solr.common.util.NamedList;
+import org.apache.solr.core.Diagnostics;
 import org.apache.solr.core.SolrCore;
 import org.apache.solr.util.AdjustableSemaphore;
 import org.slf4j.Logger;
@@ -359,6 +360,8 @@ public class SolrCmdDistributor {
     
   }
 
+  public static Diagnostics.Callable testing_errorHook;  // called on error when forwarding request.  Currently data=[this, Request]
+
   void checkResponses(boolean block) {
 
     while (pending != null && pending.size() > 0) {
@@ -372,7 +375,9 @@ public class SolrCmdDistributor {
           Request sreq = future.get();
           if (sreq.rspCode != 0) {
             // error during request
-            
+
+            if (testing_errorHook != null) Diagnostics.call(testing_errorHook, this, sreq);
+
             // if there is a retry url, we want to retry...
             boolean isRetry = sreq.node.checkRetry();
             boolean doRetry = false;