You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ma...@apache.org on 2013/10/23 19:11:45 UTC

svn commit: r1535076 - in /lucene/dev/trunk/solr: CHANGES.txt core/src/test/org/apache/solr/cloud/AliasIntegrationTest.java solrj/src/java/org/apache/solr/client/solrj/impl/CloudSolrServer.java

Author: markrmiller
Date: Wed Oct 23 17:11:44 2013
New Revision: 1535076

URL: http://svn.apache.org/r1535076
Log:
SOLR-5380: Using cloudSolrServer.setDefaultCollection(collectionId) does not work as intended for an alias spanning more than 1 collection.

Modified:
    lucene/dev/trunk/solr/CHANGES.txt
    lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/AliasIntegrationTest.java
    lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/client/solrj/impl/CloudSolrServer.java

Modified: lucene/dev/trunk/solr/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/CHANGES.txt?rev=1535076&r1=1535075&r2=1535076&view=diff
==============================================================================
--- lucene/dev/trunk/solr/CHANGES.txt (original)
+++ lucene/dev/trunk/solr/CHANGES.txt Wed Oct 23 17:11:44 2013
@@ -122,6 +122,10 @@ Bug Fixes
 * SOLR-5363: Solr doesn't start up properly with Log4J2 (Petar Tahchiev via Alan
   Woodward)
 
+* SOLR-5380: Using cloudSolrServer.setDefaultCollection(collectionId) does not
+  work as intended for an alias spanning more than 1 collection. 
+  (Thomas Egense, Shawn Heisey, Mark Miller)
+
 Optimizations
 ----------------------  
 

Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/AliasIntegrationTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/AliasIntegrationTest.java?rev=1535076&r1=1535075&r2=1535076&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/AliasIntegrationTest.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/AliasIntegrationTest.java Wed Oct 23 17:11:44 2013
@@ -157,6 +157,12 @@ public class AliasIntegrationTest extend
     query = new SolrQuery("*:*");
     query.set("collection", "testalias");
     res = cloudSolrServer.query(query);
+    assertEquals(5, res.getResults().getNumFound());
+    
+    // Try with setDefaultCollection
+    query = new SolrQuery("*:*");
+    cloudSolrServer.setDefaultCollection("testalias");
+    res = cloudSolrServer.query(query);
     cloudSolrServer.shutdown();
     assertEquals(5, res.getResults().getNumFound());
     

Modified: lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/client/solrj/impl/CloudSolrServer.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/client/solrj/impl/CloudSolrServer.java?rev=1535076&r1=1535075&r2=1535076&view=diff
==============================================================================
--- lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/client/solrj/impl/CloudSolrServer.java (original)
+++ lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/client/solrj/impl/CloudSolrServer.java Wed Oct 23 17:11:44 2013
@@ -546,17 +546,7 @@ public class CloudSolrServer extends Sol
         throw new SolrException(ErrorCode.BAD_REQUEST,
             "Could not find collection: " + collection);
       }
-      collection = collectionsList.iterator().next();
-      
-      StringBuilder collectionString = new StringBuilder();
-      Iterator<String> it = collectionsList.iterator();
-      for (int i = 0; i < collectionsList.size(); i++) {
-        String col = it.next();
-        collectionString.append(col);
-        if (i < collectionsList.size() - 1) {
-          collectionString.append(",");
-        }
-      }
+
       // TODO: not a big deal because of the caching, but we could avoid looking
       // at every shard
       // when getting leaders if we tweaked some things
@@ -592,10 +582,24 @@ public class CloudSolrServer extends Sol
               || !coreNodeProps.getState().equals(ZkStateReader.ACTIVE)) continue;
           if (nodes.put(node, nodeProps) == null) {
             if (!sendToLeaders || (sendToLeaders && coreNodeProps.isLeader())) {
-              String url = coreNodeProps.getCoreUrl();
+              String url;
+              if (reqParams.get("collection") == null) {
+                url = ZkCoreNodeProps.getCoreUrl(
+                    nodeProps.getStr(ZkStateReader.BASE_URL_PROP),
+                    defaultCollection);
+              } else {
+                url = coreNodeProps.getCoreUrl();
+              }
               urlList2.add(url);
             } else if (sendToLeaders) {
-              String url = coreNodeProps.getCoreUrl();
+              String url;
+              if (reqParams.get("collection") == null) {
+                url = ZkCoreNodeProps.getCoreUrl(
+                    nodeProps.getStr(ZkStateReader.BASE_URL_PROP),
+                    defaultCollection);
+              } else {
+                url = coreNodeProps.getCoreUrl();
+              }
               replicas.add(url);
             }
           }