mkhludnev commented on code in PR #1691:
URL: https://github.com/apache/solr/pull/1691#discussion_r1251567956


##########
solr/core/src/java/org/apache/solr/search/join/ScoreJoinQParserPlugin.java:
##########
@@ -355,43 +375,163 @@ private static String resolveAlias(String fromIndex, 
ZkController zkController)
     }
   }
 
-  private static String findLocalReplicaForFromIndex(ZkController 
zkController, String fromIndex) {
-    String fromReplica = null;
-
-    String nodeName = zkController.getNodeName();
-    for (Slice slice :
-        
zkController.getClusterState().getCollection(fromIndex).getActiveSlicesArr()) {
-      if (fromReplica != null)
-        throw new SolrException(
-            SolrException.ErrorCode.BAD_REQUEST,
-            "SolrCloud join: To join with a sharded collection, use 
method=crossCollection.");
-
-      for (Replica replica : slice.getReplicas()) {
-        if (replica.getNodeName().equals(nodeName)) {
-          fromReplica = replica.getStr(ZkStateReader.CORE_NAME_PROP);
-          // found local replica, but is it Active?
-          if (replica.getState() != Replica.State.ACTIVE)
-            throw new SolrException(
-                SolrException.ErrorCode.BAD_REQUEST,
-                "SolrCloud join: "
-                    + fromIndex
-                    + " has a local replica ("
-                    + fromReplica
-                    + ") on "
-                    + nodeName
-                    + ", but it is "
-                    + replica.getState());
+  private static String findLocalReplicaForFromIndex(
+      ZkController zkController,
+      String fromIndex,
+      SolrCore toCore,
+      String toField,
+      String fromField,
+      SolrParams localParams) {
+    final DocCollection fromCollection = 
zkController.getClusterState().getCollection(fromIndex);
+    final String nodeName = zkController.getNodeName();
+    final String hitTheRoad =
+        "SolrCloud join: To join with a collection that might not be 
co-located, use method=crossCollection.";
+    if (fromCollection.getSlices().size() == 1) {
+      String fromReplica = null;
+
+      for (Slice slice : fromCollection.getActiveSlicesArr()) {
+        if (fromReplica != null)

Review Comment:
   right. I'm turning it into assert. But it should go away anyway after moving 
to the generic hash range check logic. 
   Thanks for spotting it.



-- 
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