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);
}
}