dsmiley commented on code in PR #3418:
URL: https://github.com/apache/solr/pull/3418#discussion_r2352636387


##########
solr/core/src/test/org/apache/solr/handler/component/CombinedQueryComponentTest.java:
##########
@@ -21,39 +21,59 @@
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
-import org.apache.solr.SolrTestCaseJ4;
+import org.apache.solr.BaseDistributedSearchTestCase;
+import org.apache.solr.client.solrj.response.QueryResponse;
 import org.apache.solr.common.SolrException;
 import org.apache.solr.common.SolrInputDocument;
 import org.apache.solr.common.params.CommonParams;
+import org.apache.solr.common.util.SimpleOrderedMap;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
 /**
  * The CombinedQueryComponentTest class is an integration test suite for the 
CombinedQueryComponent
- * in Solr. It verifies the functionality of the component by performing few 
basic queries and
- * validating the responses including limitations and combiner plugin.
+ * in Solr. It verifies the functionality of the component by performing few 
basic queries in single
+ * sharded mode and validating the responses including limitations and 
combiner plugin.
  */
-public class CombinedQueryComponentTest extends SolrTestCaseJ4 {
+public class CombinedQueryComponentTest extends BaseDistributedSearchTestCase {

Review Comment:
   I'm now confused on how to differentiate the testing approach between this 
class and DistributedCombinedQueryComponentTest.  _That_ one is named 
appropriately (consistently with other distributed tests) and extends 
BaseDistributedSearchTestCase.  I'm not sure *this* test has a role/purpose if 
that one can be comprehensive.



##########
solr/core/src/java/org/apache/solr/handler/component/HttpShardHandler.java:
##########
@@ -500,6 +505,28 @@ public void prepDistributed(ResponseBuilder rb) {
     }
   }
 
+  private static void forceDistributed(ResponseBuilder rb) {
+    SolrQueryRequest req = rb.req;
+    ModifiableSolrParams solrParams = new 
ModifiableSolrParams(req.getParams());
+    solrParams.set("shortCircuit", false);
+    req.setParams(solrParams);
+    if (req.getHttpSolrCall() != null
+        && StringUtils.isEmpty(req.getParams().get(ShardParams.SHARDS))) {
+      String scheme = req.getHttpSolrCall().getReq().getScheme();
+      String host = req.getHttpSolrCall().getReq().getServerName();
+      int port = req.getHttpSolrCall().getReq().getServerPort();
+      String context = req.getHttpSolrCall().getReq().getContextPath();
+      String core = req.getCore().getName();
+      String localShardUrl =
+          String.format(Locale.ROOT, "%s://%s:%d%s/%s", scheme, host, port, 
context, core);
+      solrParams.set(ShardParams.SHARDS, localShardUrl);
+      req.setParams(solrParams);
+      return;
+    }

Review Comment:
   This part looks suspicious to me; so shortCircuit=false isn't enough?  Did 
you construct this based on seeing similar code elsewhere (where?) to create a 
shards URL?



##########
solr/core/src/java/org/apache/solr/handler/component/ResponseBuilder.java:
##########
@@ -141,6 +141,15 @@ public ResponseBuilder(
   public List<ShardRequest> outgoing; // requests to be sent
   public List<ShardRequest> finished; // requests that have received responses 
from all shards
   public String shortCircuitedURL;
+  private boolean forcedDistrib = false;

Review Comment:
   I thought of this as well, yet it feels weird to put a request aspect into 
the response data holder.  It doesn't affect the response.  Any way... it's 
really minor.  This is pragmatic.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org
For additional commands, e-mail: issues-h...@solr.apache.org

Reply via email to