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 2015/01/09 18:45:39 UTC
svn commit: r1650612 [2/3] - in /lucene/dev/branches/branch_5x: ./ solr/
solr/contrib/
solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/
solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/
solr/core/ so...
Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/CustomCollectionTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/CustomCollectionTest.java?rev=1650612&r1=1650611&r2=1650612&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/CustomCollectionTest.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/CustomCollectionTest.java Fri Jan 9 17:45:38 2015
@@ -20,8 +20,8 @@ package org.apache.solr.cloud;
import static org.apache.solr.cloud.OverseerCollectionProcessor.NUM_SLICES;
import static org.apache.solr.cloud.OverseerCollectionProcessor.ROUTER;
import static org.apache.solr.cloud.OverseerCollectionProcessor.SHARDS_PROP;
-import static org.apache.solr.common.cloud.ZkStateReader.REPLICATION_FACTOR;
import static org.apache.solr.common.cloud.ZkStateReader.MAX_SHARDS_PER_NODE;
+import static org.apache.solr.common.cloud.ZkStateReader.REPLICATION_FACTOR;
import static org.apache.solr.common.params.ShardParams._ROUTE_;
import java.util.ArrayList;
@@ -40,6 +40,8 @@ import java.util.concurrent.TimeUnit;
import org.apache.lucene.util.LuceneTestCase.Slow;
import org.apache.lucene.util.TestUtil;
+import org.apache.solr.SolrTestCaseJ4.SuppressSSL;
+import org.apache.solr.client.solrj.SolrClient;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrRequest;
import org.apache.solr.client.solrj.SolrServerException;
@@ -65,6 +67,7 @@ import org.junit.BeforeClass;
* Tests the Custom Sharding API.
*/
@Slow
+@SuppressSSL(bugUrl = "https://issues.apache.org/jira/browse/SOLR-5776")
public class CustomCollectionTest extends AbstractFullDistribZkTestBase {
private static final String DEFAULT_COLLECTION = "collection1";
@@ -223,135 +226,140 @@ public class CustomCollectionTest extend
String url = getUrlFromZk(getCommonCloudSolrClient().getZkStateReader().getClusterState(), collectionName);
+ String shard_fld = "shard_s";
HttpSolrClient collectionClient = new HttpSolrClient(url);
+ try {
-
- // lets try and use the solrj client to index a couple documents
-
- collectionClient.add(getDoc(id, 6, i1, -600, tlong, 600, t1,
- "humpty dumpy sat on a wall", _ROUTE_,"a"));
-
- collectionClient.add(getDoc(id, 7, i1, -600, tlong, 600, t1,
- "humpty dumpy3 sat on a walls", _ROUTE_,"a"));
-
- collectionClient.add(getDoc(id, 8, i1, -600, tlong, 600, t1,
- "humpty dumpy2 sat on a walled", _ROUTE_,"a"));
-
- collectionClient.commit();
-
- assertEquals(3, collectionClient.query(new SolrQuery("*:*")).getResults().getNumFound());
- assertEquals(0, collectionClient.query(new SolrQuery("*:*").setParam(_ROUTE_,"b")).getResults().getNumFound());
- assertEquals(3, collectionClient.query(new SolrQuery("*:*").setParam(_ROUTE_,"a")).getResults().getNumFound());
-
- collectionClient.deleteByQuery("*:*");
- collectionClient.commit(true,true);
- assertEquals(0, collectionClient.query(new SolrQuery("*:*")).getResults().getNumFound());
-
- UpdateRequest up = new UpdateRequest();
- up.setParam(_ROUTE_, "c");
- up.setParam("commit","true");
-
- up.add(getDoc(id, 9, i1, -600, tlong, 600, t1,
- "humpty dumpy sat on a wall"));
- up.add(getDoc(id, 10, i1, -600, tlong, 600, t1,
- "humpty dumpy3 sat on a walls"));
- up.add(getDoc(id, 11, i1, -600, tlong, 600, t1,
- "humpty dumpy2 sat on a walled"));
-
- collectionClient.request(up);
-
- assertEquals(3, collectionClient.query(new SolrQuery("*:*")).getResults().getNumFound());
- assertEquals(0, collectionClient.query(new SolrQuery("*:*").setParam(_ROUTE_,"a")).getResults().getNumFound());
- assertEquals(3, collectionClient.query(new SolrQuery("*:*").setParam(_ROUTE_,"c")).getResults().getNumFound());
-
- //Testing CREATESHARD
- ModifiableSolrParams params = new ModifiableSolrParams();
- params.set("action", CollectionAction.CREATESHARD.toString());
- params.set("collection", collectionName);
- params.set("shard", "x");
- SolrRequest request = new QueryRequest(params);
- request.setPath("/admin/collections");
- createNewSolrClient("", getBaseUrl((HttpSolrClient) clients.get(0))).request(request);
- waitForCollection(zkStateReader,collectionName,4);
- //wait for all the replicas to become active
- int attempts = 0;
- while(true){
- if(attempts>30 ) fail("Not enough active replicas in the shard 'x'");
- attempts++;
- int activeReplicaCount = 0;
- for (Replica x : zkStateReader.getClusterState().getCollection(collectionName).getSlice("x").getReplicas()) {
- if("active".equals(x.getStr("state"))) activeReplicaCount++;
+ // lets try and use the solrj client to index a couple documents
+
+ collectionClient.add(getDoc(id, 6, i1, -600, tlong, 600, t1,
+ "humpty dumpy sat on a wall", _ROUTE_,"a"));
+
+ collectionClient.add(getDoc(id, 7, i1, -600, tlong, 600, t1,
+ "humpty dumpy3 sat on a walls", _ROUTE_,"a"));
+
+ collectionClient.add(getDoc(id, 8, i1, -600, tlong, 600, t1,
+ "humpty dumpy2 sat on a walled", _ROUTE_,"a"));
+
+ collectionClient.commit();
+
+ assertEquals(3, collectionClient.query(new SolrQuery("*:*")).getResults().getNumFound());
+ assertEquals(0, collectionClient.query(new SolrQuery("*:*").setParam(_ROUTE_,"b")).getResults().getNumFound());
+ assertEquals(3, collectionClient.query(new SolrQuery("*:*").setParam(_ROUTE_,"a")).getResults().getNumFound());
+
+ collectionClient.deleteByQuery("*:*");
+ collectionClient.commit(true,true);
+ assertEquals(0, collectionClient.query(new SolrQuery("*:*")).getResults().getNumFound());
+
+ UpdateRequest up = new UpdateRequest();
+ up.setParam(_ROUTE_, "c");
+ up.setParam("commit","true");
+
+ up.add(getDoc(id, 9, i1, -600, tlong, 600, t1,
+ "humpty dumpy sat on a wall"));
+ up.add(getDoc(id, 10, i1, -600, tlong, 600, t1,
+ "humpty dumpy3 sat on a walls"));
+ up.add(getDoc(id, 11, i1, -600, tlong, 600, t1,
+ "humpty dumpy2 sat on a walled"));
+
+ collectionClient.request(up);
+
+ assertEquals(3, collectionClient.query(new SolrQuery("*:*")).getResults().getNumFound());
+ assertEquals(0, collectionClient.query(new SolrQuery("*:*").setParam(_ROUTE_,"a")).getResults().getNumFound());
+ assertEquals(3, collectionClient.query(new SolrQuery("*:*").setParam(_ROUTE_,"c")).getResults().getNumFound());
+
+ //Testing CREATESHARD
+ ModifiableSolrParams params = new ModifiableSolrParams();
+ params.set("action", CollectionAction.CREATESHARD.toString());
+ params.set("collection", collectionName);
+ params.set("shard", "x");
+ SolrRequest request = new QueryRequest(params);
+ request.setPath("/admin/collections");
+ SolrClient server = createNewSolrClient("", getBaseUrl((HttpSolrClient) clients.get(0)));
+ server.request(request);
+ server.shutdown();
+ waitForCollection(zkStateReader,collectionName,4);
+ //wait for all the replicas to become active
+ int attempts = 0;
+ while(true){
+ if(attempts>30 ) fail("Not enough active replicas in the shard 'x'");
+ attempts++;
+ int activeReplicaCount = 0;
+ for (Replica x : zkStateReader.getClusterState().getCollection(collectionName).getSlice("x").getReplicas()) {
+ if("active".equals(x.getStr("state"))) activeReplicaCount++;
+ }
+ Thread.sleep(500);
+ if(activeReplicaCount >= replicationFactor) break;
}
- Thread.sleep(500);
- if(activeReplicaCount >= replicationFactor) break;
+ log.info(zkStateReader.getClusterState().toString());
+
+ collectionClient.add(getDoc(id, 66, i1, -600, tlong, 600, t1,
+ "humpty dumpy sat on a wall", _ROUTE_,"x"));
+ collectionClient.commit();
+ assertEquals(1, collectionClient.query(new SolrQuery("*:*").setParam(_ROUTE_,"x")).getResults().getNumFound());
+
+
+ int numShards = 4;
+ replicationFactor = TestUtil.nextInt(random(), 0, 3) + 2;
+ int maxShardsPerNode = (((numShards * replicationFactor) / getCommonCloudSolrClient()
+ .getZkStateReader().getClusterState().getLiveNodes().size())) + 1;
+
+
+ CloudSolrClient client = null;
+ try {
+ client = createCloudClient(null);
+ Map<String, Object> props = ZkNodeProps.makeMap(
+ "router.name", ImplicitDocRouter.NAME,
+ REPLICATION_FACTOR, replicationFactor,
+ MAX_SHARDS_PER_NODE, maxShardsPerNode,
+ SHARDS_PROP,"a,b,c,d",
+ "router.field", shard_fld);
+
+ collectionName = COLL_PREFIX + "withShardField";
+ createCollection(collectionInfos, collectionName,props,client);
+ } finally {
+ if (client != null) client.shutdown();
+ }
+
+ List<Integer> list = collectionInfos.get(collectionName);
+ checkForCollection(collectionName, list, null);
+
+
+ url = getUrlFromZk(getCommonCloudSolrClient().getZkStateReader().getClusterState(), collectionName);
+ } finally {
+ collectionClient.shutdown();
}
- log.info(zkStateReader.getClusterState().toString());
-
- collectionClient.add(getDoc(id, 66, i1, -600, tlong, 600, t1,
- "humpty dumpy sat on a wall", _ROUTE_,"x"));
- collectionClient.commit();
- assertEquals(1, collectionClient.query(new SolrQuery("*:*").setParam(_ROUTE_,"x")).getResults().getNumFound());
-
-
- int numShards = 4;
- replicationFactor = TestUtil.nextInt(random(), 0, 3) + 2;
- int maxShardsPerNode = (((numShards * replicationFactor) / getCommonCloudSolrClient()
- .getZkStateReader().getClusterState().getLiveNodes().size())) + 1;
-
-
- CloudSolrClient client = null;
- String shard_fld = "shard_s";
+ collectionClient = new HttpSolrClient(url);
try {
- client = createCloudClient(null);
- Map<String, Object> props = ZkNodeProps.makeMap(
- "router.name", ImplicitDocRouter.NAME,
- REPLICATION_FACTOR, replicationFactor,
- MAX_SHARDS_PER_NODE, maxShardsPerNode,
- SHARDS_PROP,"a,b,c,d",
- "router.field", shard_fld);
-
- collectionName = COLL_PREFIX + "withShardField";
- createCollection(collectionInfos, collectionName,props,client);
+ // poll for a second - it can take a moment before we are ready to serve
+ waitForNon403or404or503(collectionClient);
} finally {
- if (client != null) client.shutdown();
+ collectionClient.shutdown();
}
- List<Integer> list = collectionInfos.get(collectionName);
- checkForCollection(collectionName, list, null);
-
-
- url = getUrlFromZk(getCommonCloudSolrClient().getZkStateReader().getClusterState(), collectionName);
-
- collectionClient.shutdown();
- collectionClient = new HttpSolrClient(url);
- // poll for a second - it can take a moment before we are ready to serve
- waitForNon403or404or503(collectionClient);
-
-
-
- collectionClient.shutdown();
- collectionClient = new HttpSolrClient(url);
-
-
- // lets try and use the solrj client to index a couple documents
-
- collectionClient.add(getDoc(id, 6, i1, -600, tlong, 600, t1,
- "humpty dumpy sat on a wall", shard_fld,"a"));
-
- collectionClient.add(getDoc(id, 7, i1, -600, tlong, 600, t1,
- "humpty dumpy3 sat on a walls", shard_fld,"a"));
-
- collectionClient.add(getDoc(id, 8, i1, -600, tlong, 600, t1,
- "humpty dumpy2 sat on a walled", shard_fld,"a"));
-
- collectionClient.commit();
-
- assertEquals(3, collectionClient.query(new SolrQuery("*:*")).getResults().getNumFound());
- assertEquals(0, collectionClient.query(new SolrQuery("*:*").setParam(_ROUTE_,"b")).getResults().getNumFound());
- //TODO debug the following case
- assertEquals(3, collectionClient.query(new SolrQuery("*:*").setParam(_ROUTE_, "a")).getResults().getNumFound());
- collectionClient.shutdown();
+ collectionClient = new HttpSolrClient(url);
+ try {
+ // lets try and use the solrj client to index a couple documents
+
+ collectionClient.add(getDoc(id, 6, i1, -600, tlong, 600, t1,
+ "humpty dumpy sat on a wall", shard_fld,"a"));
+
+ collectionClient.add(getDoc(id, 7, i1, -600, tlong, 600, t1,
+ "humpty dumpy3 sat on a walls", shard_fld,"a"));
+
+ collectionClient.add(getDoc(id, 8, i1, -600, tlong, 600, t1,
+ "humpty dumpy2 sat on a walled", shard_fld,"a"));
+
+ collectionClient.commit();
+
+ assertEquals(3, collectionClient.query(new SolrQuery("*:*")).getResults().getNumFound());
+ assertEquals(0, collectionClient.query(new SolrQuery("*:*").setParam(_ROUTE_,"b")).getResults().getNumFound());
+ //TODO debug the following case
+ assertEquals(3, collectionClient.query(new SolrQuery("*:*").setParam(_ROUTE_, "a")).getResults().getNumFound());
+ } finally {
+ collectionClient.shutdown();
+ }
}
private void testRouteFieldForHashRouter()throws Exception{
@@ -384,39 +392,43 @@ public class CustomCollectionTest extend
String url = getUrlFromZk(getCommonCloudSolrClient().getZkStateReader().getClusterState(), collectionName);
HttpSolrClient collectionClient = new HttpSolrClient(url);
-
- // poll for a second - it can take a moment before we are ready to serve
- waitForNon403or404or503(collectionClient);
- collectionClient.shutdown();
+ try {
+ // poll for a second - it can take a moment before we are ready to serve
+ waitForNon403or404or503(collectionClient);
+ collectionClient.shutdown();
+ } finally {
+ collectionClient.shutdown();
+ }
collectionClient = new HttpSolrClient(url);
-
-
- // lets try and use the solrj client to index a couple documents
-
- collectionClient.add(getDoc(id, 6, i1, -600, tlong, 600, t1,
- "humpty dumpy sat on a wall", shard_fld,"a"));
-
- collectionClient.add(getDoc(id, 7, i1, -600, tlong, 600, t1,
- "humpty dumpy3 sat on a walls", shard_fld,"a"));
-
- collectionClient.add(getDoc(id, 8, i1, -600, tlong, 600, t1,
- "humpty dumpy2 sat on a walled", shard_fld,"a"));
-
- collectionClient.commit();
-
- assertEquals(3, collectionClient.query(new SolrQuery("*:*")).getResults().getNumFound());
- //TODO debug the following case
- assertEquals(3, collectionClient.query(new SolrQuery("*:*").setParam(_ROUTE_, "a")).getResults().getNumFound());
-
- collectionClient.deleteByQuery("*:*");
- collectionClient.commit();
-
- collectionClient.add (getDoc( id,100,shard_fld, "b!doc1"));
- collectionClient.commit();
- assertEquals(1, collectionClient.query(new SolrQuery("*:*").setParam(_ROUTE_, "b!")).getResults().getNumFound());
- collectionClient.shutdown();
+ try {
+ // lets try and use the solrj client to index a couple documents
+
+ collectionClient.add(getDoc(id, 6, i1, -600, tlong, 600, t1,
+ "humpty dumpy sat on a wall", shard_fld,"a"));
+
+ collectionClient.add(getDoc(id, 7, i1, -600, tlong, 600, t1,
+ "humpty dumpy3 sat on a walls", shard_fld,"a"));
+
+ collectionClient.add(getDoc(id, 8, i1, -600, tlong, 600, t1,
+ "humpty dumpy2 sat on a walled", shard_fld,"a"));
+
+ collectionClient.commit();
+
+ assertEquals(3, collectionClient.query(new SolrQuery("*:*")).getResults().getNumFound());
+ //TODO debug the following case
+ assertEquals(3, collectionClient.query(new SolrQuery("*:*").setParam(_ROUTE_, "a")).getResults().getNumFound());
+
+ collectionClient.deleteByQuery("*:*");
+ collectionClient.commit();
+
+ collectionClient.add (getDoc( id,100,shard_fld, "b!doc1"));
+ collectionClient.commit();
+ assertEquals(1, collectionClient.query(new SolrQuery("*:*").setParam(_ROUTE_, "b!")).getResults().getNumFound());
+ } finally {
+ collectionClient.shutdown();
+ }
}
private void testCreateShardRepFactor() throws Exception {
@@ -445,7 +457,9 @@ public class CustomCollectionTest extend
params.set("shard", "x");
SolrRequest request = new QueryRequest(params);
request.setPath("/admin/collections");
- createNewSolrClient("", getBaseUrl((HttpSolrClient) clients.get(0))).request(request);
+ SolrClient server = createNewSolrClient("", getBaseUrl((HttpSolrClient) clients.get(0)));
+ server.request(request);
+ server.shutdown();
waitForRecoveriesToFinish(collectionName, zkStateReader, false);
Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/DeleteShardTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/DeleteShardTest.java?rev=1650612&r1=1650611&r2=1650612&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/DeleteShardTest.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/DeleteShardTest.java Fri Jan 9 17:45:38 2015
@@ -147,11 +147,14 @@ public class DeleteShardTest extends Abs
.getBaseURL();
baseUrl = baseUrl.substring(0, baseUrl.length() - "collection1".length());
- HttpSolrClient baseClient = new HttpSolrClient(baseUrl);
- baseClient.setConnectionTimeout(15000);
- baseClient.setSoTimeout(60000);
- baseClient.request(request);
- baseClient.shutdown();
+ HttpSolrClient baseServer = new HttpSolrClient(baseUrl);
+ try {
+ baseServer.setConnectionTimeout(15000);
+ baseServer.setSoTimeout(60000);
+ baseServer.request(request);
+ } finally {
+ baseServer.shutdown();
+ }
}
protected void setSliceState(String slice, String state) throws SolrServerException, IOException,
Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/LeaderFailoverAfterPartitionTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/LeaderFailoverAfterPartitionTest.java?rev=1650612&r1=1650611&r2=1650612&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/LeaderFailoverAfterPartitionTest.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/LeaderFailoverAfterPartitionTest.java Fri Jan 9 17:45:38 2015
@@ -17,15 +17,17 @@ package org.apache.solr.cloud;
* limitations under the License.
*/
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import java.util.concurrent.TimeUnit;
+
import org.apache.lucene.util.LuceneTestCase.Slow;
import org.apache.solr.SolrTestCaseJ4.SuppressSSL;
import org.apache.solr.client.solrj.embedded.JettySolrRunner;
+import org.apache.solr.client.solrj.impl.HttpSolrClient;
import org.apache.solr.client.solrj.request.CollectionAdminRequest;
import org.apache.solr.common.cloud.Replica;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-import java.util.concurrent.TimeUnit;
/**
* Tests leader-initiated recovery scenarios after a leader node fails
@@ -109,10 +111,20 @@ public class LeaderFailoverAfterPartitio
// indexing during a partition
// doc should be on leader and 1 replica
sendDoc(5);
-
- assertDocExists(getHttpSolrClient(leader, testCollectionName), testCollectionName, "5");
- assertDocExists(getHttpSolrClient(notLeaders.get(1), testCollectionName), testCollectionName, "5");
-
+
+ HttpSolrClient server = getHttpSolrClient(leader, testCollectionName);
+ try {
+ assertDocExists(server, testCollectionName, "5");
+ } finally {
+ server.shutdown();
+ }
+ try {
+ server = getHttpSolrClient(notLeaders.get(1), testCollectionName);
+ assertDocExists(server, testCollectionName, "5");
+ } finally {
+ server.shutdown();
+ }
+
Thread.sleep(sleepMsBeforeHealPartition);
String shouldNotBeNewLeaderNode = notLeaders.get(0).getNodeName();
@@ -160,12 +172,14 @@ public class LeaderFailoverAfterPartitio
printClusterStateInfo(testCollectionName),
participatingReplicas.size() >= 2);
+
sendDoc(6);
+
Set<String> replicasToCheck = new HashSet<>();
for (Replica stillUp : participatingReplicas)
replicasToCheck.add(stillUp.getName());
- waitToSeeReplicasActive(testCollectionName, "shard1", replicasToCheck, 20);
+ waitToSeeReplicasActive(testCollectionName, "shard1", replicasToCheck, 90);
assertDocsExistInAllReplicas(participatingReplicas, testCollectionName, 1, 6);
// try to clean up
Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/LeaderInitiatedRecoveryOnCommitTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/LeaderInitiatedRecoveryOnCommitTest.java?rev=1650612&r1=1650611&r2=1650612&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/LeaderInitiatedRecoveryOnCommitTest.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/LeaderInitiatedRecoveryOnCommitTest.java Fri Jan 9 17:45:38 2015
@@ -91,8 +91,12 @@ public class LeaderInitiatedRecoveryOnCo
// let's find the leader of shard2 and ask him to commit
Replica shard2Leader = cloudClient.getZkStateReader().getLeaderRetry(testCollectionName, "shard2");
- HttpSolrClient client = new HttpSolrClient(ZkCoreNodeProps.getCoreUrl(shard2Leader.getStr("base_url"), shard2Leader.getStr("core")));
- client.commit();
+ HttpSolrClient server = new HttpSolrClient(ZkCoreNodeProps.getCoreUrl(shard2Leader.getStr("base_url"), shard2Leader.getStr("core")));
+ try {
+ server.commit();
+ } finally {
+ server.shutdown();
+ }
Thread.sleep(sleepMsBeforeHealPartition);
@@ -135,6 +139,7 @@ public class LeaderInitiatedRecoveryOnCo
Replica replica = notLeaders.get(0);
HttpSolrClient client = new HttpSolrClient(ZkCoreNodeProps.getCoreUrl(replica.getStr("base_url"), replica.getStr("core")));
client.commit();
+ client.shutdown();
Thread.sleep(sleepMsBeforeHealPartition);
Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/MultiThreadedOCPTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/MultiThreadedOCPTest.java?rev=1650612&r1=1650611&r2=1650612&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/MultiThreadedOCPTest.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/MultiThreadedOCPTest.java Fri Jan 9 17:45:38 2015
@@ -77,130 +77,141 @@ public class MultiThreadedOCPTest extend
private void testParallelCollectionAPICalls() throws IOException, SolrServerException {
SolrClient client = createNewSolrClient("", getBaseUrl((HttpSolrClient) clients.get(0)));
-
- for(int i = 1 ; i <= NUM_COLLECTIONS ; i++) {
- Create createCollectionRequest = new Create();
- createCollectionRequest.setCollectionName("ocptest" + i);
- createCollectionRequest.setNumShards(4);
- createCollectionRequest.setConfigName("conf1");
- createCollectionRequest.setAsyncId(String.valueOf(i));
- createCollectionRequest.process(client);
- }
-
- boolean pass = false;
- int counter = 0;
- while(true) {
- int numRunningTasks = 0;
- for (int i = 1; i <= NUM_COLLECTIONS; i++)
- if (getRequestState(i + "", client).equals("running"))
- numRunningTasks++;
- if(numRunningTasks > 1) {
- pass = true;
- break;
- } else if(counter++ > 100)
- break;
- try {
- Thread.sleep(100);
- } catch (InterruptedException e) {
- Thread.currentThread().interrupt();
+ try {
+ for(int i = 1 ; i <= NUM_COLLECTIONS ; i++) {
+ Create createCollectionRequest = new Create();
+ createCollectionRequest.setCollectionName("ocptest" + i);
+ createCollectionRequest.setNumShards(4);
+ createCollectionRequest.setConfigName("conf1");
+ createCollectionRequest.setAsyncId(String.valueOf(i));
+ createCollectionRequest.process(client);
+ }
+
+ boolean pass = false;
+ int counter = 0;
+ while(true) {
+ int numRunningTasks = 0;
+ for (int i = 1; i <= NUM_COLLECTIONS; i++)
+ if (getRequestState(i + "", client).equals("running"))
+ numRunningTasks++;
+ if(numRunningTasks > 1) {
+ pass = true;
+ break;
+ } else if(counter++ > 100)
+ break;
+ try {
+ Thread.sleep(100);
+ } catch (InterruptedException e) {
+ Thread.currentThread().interrupt();
+ }
}
- }
- assertTrue("More than one tasks were supposed to be running in parallel but they weren't.", pass);
- for(int i=1;i<=NUM_COLLECTIONS;i++) {
- String state = getRequestStateAfterCompletion(i + "", REQUEST_STATUS_TIMEOUT, client);
- assertTrue("Task " + i + " did not complete, final state: " + state,state.equals("completed"));
+ assertTrue("More than one tasks were supposed to be running in parallel but they weren't.", pass);
+ for(int i=1;i<=NUM_COLLECTIONS;i++) {
+ String state = getRequestStateAfterCompletion(i + "", REQUEST_STATUS_TIMEOUT, client);
+ assertTrue("Task " + i + " did not complete, final state: " + state,state.equals("completed"));
+ }
+ } finally {
+ client.shutdown();
}
}
private void testTaskExclusivity() throws IOException, SolrServerException {
SolrClient client = createNewSolrClient("", getBaseUrl((HttpSolrClient) clients.get(0)));
- Create createCollectionRequest = new Create();
- createCollectionRequest.setCollectionName("ocptest_shardsplit");
- createCollectionRequest.setNumShards(4);
- createCollectionRequest.setConfigName("conf1");
- createCollectionRequest.setAsyncId("1000");
- createCollectionRequest.process(client);
-
- SplitShard splitShardRequest = new SplitShard();
- splitShardRequest.setCollectionName("ocptest_shardsplit");
- splitShardRequest.setShardName(SHARD1);
- splitShardRequest.setAsyncId("1001");
- splitShardRequest.process(client);
-
- splitShardRequest = new SplitShard();
- splitShardRequest.setCollectionName("ocptest_shardsplit");
- splitShardRequest.setShardName(SHARD2);
- splitShardRequest.setAsyncId("1002");
- splitShardRequest.process(client);
-
- int iterations = 0;
- while(true) {
- int runningTasks = 0;
- int completedTasks = 0;
+ try {
+ Create createCollectionRequest = new Create();
+ createCollectionRequest.setCollectionName("ocptest_shardsplit");
+ createCollectionRequest.setNumShards(4);
+ createCollectionRequest.setConfigName("conf1");
+ createCollectionRequest.setAsyncId("1000");
+ createCollectionRequest.process(client);
+
+ SplitShard splitShardRequest = new SplitShard();
+ splitShardRequest.setCollectionName("ocptest_shardsplit");
+ splitShardRequest.setShardName(SHARD1);
+ splitShardRequest.setAsyncId("1001");
+ splitShardRequest.process(client);
+
+ splitShardRequest = new SplitShard();
+ splitShardRequest.setCollectionName("ocptest_shardsplit");
+ splitShardRequest.setShardName(SHARD2);
+ splitShardRequest.setAsyncId("1002");
+ splitShardRequest.process(client);
+
+ int iterations = 0;
+ while(true) {
+ int runningTasks = 0;
+ int completedTasks = 0;
+ for (int i=1001;i<=1002;i++) {
+ String state = getRequestState(i, client);
+ if (state.equals("running"))
+ runningTasks++;
+ if (state.equals("completed"))
+ completedTasks++;
+ assertTrue("We have a failed SPLITSHARD task", !state.equals("failed"));
+ }
+ // TODO: REQUESTSTATUS might come back with more than 1 running tasks over multiple calls.
+ // The only way to fix this is to support checking of multiple requestids in a single REQUESTSTATUS task.
+
+ assertTrue("Mutual exclusion failed. Found more than one task running for the same collection", runningTasks < 2);
+
+ if(completedTasks == 2 || iterations++ > REQUEST_STATUS_TIMEOUT)
+ break;
+
+ try {
+ Thread.sleep(1000);
+ } catch (InterruptedException e) {
+ Thread.currentThread().interrupt();
+ return;
+ }
+ }
for (int i=1001;i<=1002;i++) {
- String state = getRequestState(i, client);
- if (state.equals("running"))
- runningTasks++;
- if (state.equals("completed"))
- completedTasks++;
- assertTrue("We have a failed SPLITSHARD task", !state.equals("failed"));
- }
- // TODO: REQUESTSTATUS might come back with more than 1 running tasks over multiple calls.
- // The only way to fix this is to support checking of multiple requestids in a single REQUESTSTATUS task.
-
- assertTrue("Mutual exclusion failed. Found more than one task running for the same collection", runningTasks < 2);
-
- if(completedTasks == 2 || iterations++ > REQUEST_STATUS_TIMEOUT)
- break;
-
- try {
- Thread.sleep(1000);
- } catch (InterruptedException e) {
- Thread.currentThread().interrupt();
- return;
+ String state = getRequestStateAfterCompletion(i + "", REQUEST_STATUS_TIMEOUT, client);
+ assertTrue("Task " + i + " did not complete, final state: " + state,state.equals("completed"));
}
- }
- for (int i=1001;i<=1002;i++) {
- String state = getRequestStateAfterCompletion(i + "", REQUEST_STATUS_TIMEOUT, client);
- assertTrue("Task " + i + " did not complete, final state: " + state,state.equals("completed"));
+ } finally {
+ client.shutdown();
}
}
private void testDeduplicationOfSubmittedTasks() throws IOException, SolrServerException {
SolrClient client = createNewSolrClient("", getBaseUrl((HttpSolrClient) clients.get(0)));
- Create createCollectionRequest = new Create();
- createCollectionRequest.setCollectionName("ocptest_shardsplit2");
- createCollectionRequest.setNumShards(4);
- createCollectionRequest.setConfigName("conf1");
- createCollectionRequest.setAsyncId("3000");
- createCollectionRequest.process(client);
-
- SplitShard splitShardRequest = new SplitShard();
- splitShardRequest.setCollectionName("ocptest_shardsplit2");
- splitShardRequest.setShardName(SHARD1);
- splitShardRequest.setAsyncId("3001");
- splitShardRequest.process(client);
-
- splitShardRequest = new SplitShard();
- splitShardRequest.setCollectionName("ocptest_shardsplit2");
- splitShardRequest.setShardName(SHARD2);
- splitShardRequest.setAsyncId("3002");
- splitShardRequest.process(client);
-
- // Now submit another task with the same id. At this time, hopefully the previous 3002 should still be in the queue.
- splitShardRequest = new SplitShard();
- splitShardRequest.setCollectionName("ocptest_shardsplit2");
- splitShardRequest.setShardName(SHARD1);
- splitShardRequest.setAsyncId("3002");
- CollectionAdminResponse response = splitShardRequest.process(client);
-
- NamedList r = response.getResponse();
- assertEquals("Duplicate request was supposed to exist but wasn't found. De-duplication of submitted task failed.",
- "Task with the same requestid already exists.", r.get("error"));
-
- for (int i=3001;i<=3002;i++) {
- String state = getRequestStateAfterCompletion(i + "", REQUEST_STATUS_TIMEOUT, client);
- assertTrue("Task " + i + " did not complete, final state: " + state,state.equals("completed"));
+ try {
+ Create createCollectionRequest = new Create();
+ createCollectionRequest.setCollectionName("ocptest_shardsplit2");
+ createCollectionRequest.setNumShards(4);
+ createCollectionRequest.setConfigName("conf1");
+ createCollectionRequest.setAsyncId("3000");
+ createCollectionRequest.process(client);
+
+ SplitShard splitShardRequest = new SplitShard();
+ splitShardRequest.setCollectionName("ocptest_shardsplit2");
+ splitShardRequest.setShardName(SHARD1);
+ splitShardRequest.setAsyncId("3001");
+ splitShardRequest.process(client);
+
+ splitShardRequest = new SplitShard();
+ splitShardRequest.setCollectionName("ocptest_shardsplit2");
+ splitShardRequest.setShardName(SHARD2);
+ splitShardRequest.setAsyncId("3002");
+ splitShardRequest.process(client);
+
+ // Now submit another task with the same id. At this time, hopefully the previous 3002 should still be in the queue.
+ splitShardRequest = new SplitShard();
+ splitShardRequest.setCollectionName("ocptest_shardsplit2");
+ splitShardRequest.setShardName(SHARD1);
+ splitShardRequest.setAsyncId("3002");
+ CollectionAdminResponse response = splitShardRequest.process(client);
+
+ NamedList r = response.getResponse();
+ assertEquals("Duplicate request was supposed to exist but wasn't found. De-duplication of submitted task failed.",
+ "Task with the same requestid already exists.", r.get("error"));
+
+ for (int i=3001;i<=3002;i++) {
+ String state = getRequestStateAfterCompletion(i + "", REQUEST_STATUS_TIMEOUT, client);
+ assertTrue("Task " + i + " did not complete, final state: " + state,state.equals("completed"));
+ }
+ } finally {
+ client.shutdown();
}
}
@@ -221,10 +232,9 @@ public class MultiThreadedOCPTest extend
}
};
indexThread.start();
-
+ SolrClient client = createNewSolrClient("", getBaseUrl((HttpSolrClient) clients.get(0)));
try {
- SolrClient client = createNewSolrClient("", getBaseUrl((HttpSolrClient) clients.get(0)));
SplitShard splitShardRequest = new SplitShard();
splitShardRequest.setCollectionName("collection1");
splitShardRequest.setShardName(SHARD1);
@@ -258,6 +268,8 @@ public class MultiThreadedOCPTest extend
indexThread.join();
} catch (InterruptedException e) {
log.warn("Indexing thread interrupted.");
+ } finally {
+ client.shutdown();
}
}
}
Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/OverseerTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/OverseerTest.java?rev=1650612&r1=1650611&r2=1650612&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/OverseerTest.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/OverseerTest.java Fri Jan 9 17:45:38 2015
@@ -71,6 +71,8 @@ public class OverseerTest extends SolrTe
private List<Overseer> overseers = new ArrayList<>();
private List<ZkStateReader> readers = new ArrayList<>();
+ private List<HttpShardHandlerFactory> httpShardHandlerFactorys = new ArrayList<>();
+ private List<UpdateShardHandler> updateShardHandlers = new ArrayList<>();
private String collection = "collection1";
@@ -205,6 +207,16 @@ public class OverseerTest extends SolrTe
reader.close();
}
readers.clear();
+
+ for (HttpShardHandlerFactory handlerFactory : httpShardHandlerFactorys) {
+ handlerFactory.close();
+ }
+ httpShardHandlerFactorys.clear();
+
+ for (UpdateShardHandler updateShardHandler : updateShardHandlers) {
+ updateShardHandler.close();
+ }
+ updateShardHandlers.clear();
}
@Test
@@ -1118,8 +1130,11 @@ public class OverseerTest extends SolrTe
overseers.get(overseers.size() -1).getZkStateReader().getZkClient().close();
}
UpdateShardHandler updateShardHandler = new UpdateShardHandler(null);
+ updateShardHandlers.add(updateShardHandler);
+ HttpShardHandlerFactory httpShardHandlerFactory = new HttpShardHandlerFactory();
+ httpShardHandlerFactorys.add(httpShardHandlerFactory);
Overseer overseer = new Overseer(
- new HttpShardHandlerFactory().getShardHandler(), updateShardHandler, "/admin/cores", reader, null, new MockConfigSolr());
+ httpShardHandlerFactory.getShardHandler(), updateShardHandler, "/admin/cores", reader, null, new MockConfigSolr());
overseers.add(overseer);
ElectionContext ec = new OverseerElectionContext(zkClient, overseer,
address.replaceAll("/", "_"));
Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/ShardSplitTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/ShardSplitTest.java?rev=1650612&r1=1650611&r2=1650612&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/ShardSplitTest.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/ShardSplitTest.java Fri Jan 9 17:45:38 2015
@@ -525,11 +525,14 @@ public class ShardSplitTest extends Basi
.getBaseURL();
baseUrl = baseUrl.substring(0, baseUrl.length() - "collection1".length());
- HttpSolrClient baseClient = new HttpSolrClient(baseUrl);
- baseClient.setConnectionTimeout(30000);
- baseClient.setSoTimeout(60000 * 5);
- baseClient.request(request);
- baseClient.shutdown();
+ HttpSolrClient baseServer = new HttpSolrClient(baseUrl);
+ try {
+ baseServer.setConnectionTimeout(30000);
+ baseServer.setSoTimeout(60000 * 5);
+ baseServer.request(request);
+ } finally {
+ baseServer.shutdown();
+ }
}
protected void indexAndUpdateCount(DocRouter router, List<DocRouter.Range> ranges, int[] docCounts, String id, int n) throws Exception {
Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/SolrXmlInZkTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/SolrXmlInZkTest.java?rev=1650612&r1=1650611&r2=1650612&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/SolrXmlInZkTest.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/SolrXmlInZkTest.java Fri Jan 9 17:45:38 2015
@@ -29,6 +29,7 @@ import org.apache.solr.common.cloud.ZkSt
import org.apache.solr.core.ConfigSolr;
import org.apache.solr.core.SolrResourceLoader;
import org.apache.solr.servlet.SolrDispatchFilter;
+import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
@@ -52,10 +53,19 @@ public class SolrXmlInZkTest extends Sol
private ConfigSolr cfg;
+ private SolrDispatchFilter solrDispatchFilter;
+
@Before
- public void beforeClass() {
+ public void before() {
System.setProperty("solr.solrxml.location", "zookeeper");
}
+
+ @After
+ public void after() {
+ if (solrDispatchFilter != null) {
+ solrDispatchFilter.destroy();
+ }
+ }
private void setUpZkAndDiskXml(boolean toZk, boolean leaveOnLocal) throws Exception {
File tmpDir = createTempDir().toFile();
@@ -96,8 +106,9 @@ public class SolrXmlInZkTest extends Sol
Method method = SolrDispatchFilter.class.getDeclaredMethod("loadConfigSolr", SolrResourceLoader.class);
method.setAccessible(true);
-
- Object obj = method.invoke(new SolrDispatchFilter(), new SolrResourceLoader(null));
+ if (solrDispatchFilter != null) solrDispatchFilter.destroy();
+ solrDispatchFilter = new SolrDispatchFilter();
+ Object obj = method.invoke(solrDispatchFilter, new SolrResourceLoader(null));
cfg = (ConfigSolr) obj;
log.info("####SETUP_END " + getTestName());
@@ -200,7 +211,9 @@ public class SolrXmlInZkTest extends Sol
try {
Method method = SolrDispatchFilter.class.getDeclaredMethod("loadConfigSolr", SolrResourceLoader.class);
method.setAccessible(true);
- method.invoke(new SolrDispatchFilter(), new SolrResourceLoader(null));
+ if (solrDispatchFilter != null) solrDispatchFilter.destroy();
+ solrDispatchFilter = new SolrDispatchFilter();
+ method.invoke(solrDispatchFilter, new SolrResourceLoader(null));
fail("Should have thrown an exception");
} catch (InvocationTargetException ite) {
assertTrue("Should be catching a SolrException", ite.getTargetException() instanceof SolrException);
Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/TestLeaderElectionZkExpiry.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/TestLeaderElectionZkExpiry.java?rev=1650612&r1=1650611&r2=1650612&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/TestLeaderElectionZkExpiry.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/TestLeaderElectionZkExpiry.java Fri Jan 9 17:45:38 2015
@@ -45,7 +45,6 @@ public class TestLeaderElectionZkExpiry
server.run();
AbstractZkTestCase.tryCleanSolrZkNode(server.getZkHost());
AbstractZkTestCase.makeSolrZkNode(server.getZkHost());
- cc.load();
final ZkController zkController = new ZkController(cc, server.getZkAddress(), 15000, 30000, "dummy.host.com", "8984", "/solr", 180000, 180000, true, new CurrentCoreDescriptorProvider() {
@Override
Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/TestRequestStatusCollectionAPI.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/TestRequestStatusCollectionAPI.java?rev=1650612&r1=1650611&r2=1650612&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/TestRequestStatusCollectionAPI.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/TestRequestStatusCollectionAPI.java Fri Jan 9 17:45:38 2015
@@ -218,8 +218,10 @@ public class TestRequestStatusCollection
.getBaseURL();
baseUrl = baseUrl.substring(0, baseUrl.length() - "collection1".length());
- HttpSolrClient baseClient = new HttpSolrClient(baseUrl);
- baseClient.setConnectionTimeout(15000);
- return baseClient.request(request);
+ HttpSolrClient baseServer = new HttpSolrClient(baseUrl);
+ baseServer.setConnectionTimeout(15000);
+ NamedList<Object> resp = baseServer.request(request);
+ baseServer.shutdown();
+ return resp;
}
}
Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/ZkControllerTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/ZkControllerTest.java?rev=1650612&r1=1650611&r2=1650612&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/ZkControllerTest.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/cloud/ZkControllerTest.java Fri Jan 9 17:45:38 2015
@@ -35,9 +35,7 @@ import org.apache.solr.core.CoreDescript
import org.apache.solr.core.CoresLocator;
import org.apache.solr.handler.admin.CoreAdminHandler;
import org.apache.solr.handler.component.HttpShardHandlerFactory;
-import org.apache.solr.handler.component.ShardHandlerFactory;
import org.apache.solr.update.UpdateShardHandler;
-import org.apache.solr.util.ExternalPaths;
import org.apache.zookeeper.CreateMode;
import org.junit.AfterClass;
import org.junit.BeforeClass;
Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestCoreDiscovery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestCoreDiscovery.java?rev=1650612&r1=1650611&r2=1650612&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestCoreDiscovery.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestCoreDiscovery.java Fri Jan 9 17:45:38 2015
@@ -110,7 +110,12 @@ public class TestCoreDiscovery extends S
private CoreContainer init() throws Exception {
final CoreContainer cores = new CoreContainer();
- cores.load();
+ try {
+ cores.load();
+ } catch (Exception e) {
+ cores.shutdown();
+ throw e;
+ }
return cores;
}
Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestDynamicLoading.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestDynamicLoading.java?rev=1650612&r1=1650611&r2=1650612&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestDynamicLoading.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestDynamicLoading.java Fri Jan 9 17:45:38 2015
@@ -26,6 +26,7 @@ import org.apache.solr.handler.TestBlobH
import org.apache.solr.util.RESTfulServerProvider;
import org.apache.solr.util.RestTestHarness;
import org.apache.solr.util.SimplePostTool;
+import org.junit.After;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -55,16 +56,18 @@ public class TestDynamicLoading extends
}
}
-
+ @After
+ public void testDown() throws Exception {
+ super.tearDown();
+ for (RestTestHarness r : restTestHarnesses) {
+ r.close();
+ }
+ }
@Override
public void doTest() throws Exception {
-
setupHarnesses();
dynamicLoading();
-
-
-
}
private void dynamicLoading() throws Exception {
@@ -201,6 +204,4 @@ public class TestDynamicLoading extends
return bos.getByteBuffer();
}
-
-
}
Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestImplicitCoreProperties.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestImplicitCoreProperties.java?rev=1650612&r1=1650611&r2=1650612&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestImplicitCoreProperties.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestImplicitCoreProperties.java Fri Jan 9 17:45:38 2015
@@ -30,7 +30,6 @@ public class TestImplicitCoreProperties
CoreContainer cc = createCoreContainer(TEST_HOME(), SOLRXML);
try {
- cc.load();
assertQ(req("q", "*:*")
, "//str[@name='dummy1'][.='collection1']"
, "//str[@name='dummy2'][.='data"+File.separator+"']"
Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestSolrConfigHandler.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestSolrConfigHandler.java?rev=1650612&r1=1650611&r2=1650612&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestSolrConfigHandler.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestSolrConfigHandler.java Fri Jan 9 17:45:38 2015
@@ -92,6 +92,9 @@ public class TestSolrConfigHandler exten
jetty = null;
}
client = null;
+ if (restTestHarness != null) {
+ restTestHarness.close();
+ }
restTestHarness = null;
}
Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/handler/TestBlobHandler.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/handler/TestBlobHandler.java?rev=1650612&r1=1650611&r2=1650612&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/handler/TestBlobHandler.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/handler/TestBlobHandler.java Fri Jan 9 17:45:38 2015
@@ -60,46 +60,48 @@ public class TestBlobHandler extends Abs
private void doBlobHandlerTest() throws Exception {
SolrClient client = createNewSolrClient("", getBaseUrl((HttpSolrClient) clients.get(0)));
-
- CollectionAdminResponse response1;
- CollectionAdminRequest.Create createCollectionRequest = new CollectionAdminRequest.Create();
- createCollectionRequest.setCollectionName(".system");
- createCollectionRequest.setNumShards(1);
- createCollectionRequest.setReplicationFactor(2);
- response1 = createCollectionRequest.process(client);
- assertEquals(0, response1.getStatus());
- assertTrue(response1.isSuccess());
- DocCollection sysColl = cloudClient.getZkStateReader().getClusterState().getCollection(".system");
- Replica replica = sysColl.getActiveSlicesMap().values().iterator().next().getLeader();
-
- String baseUrl = replica.getStr(ZkStateReader.BASE_URL_PROP);
- String url = baseUrl + "/.system/config/requestHandler";
- Map map = TestSolrConfigHandlerConcurrent.getAsMap(url, cloudClient);
- assertNotNull(map);
- assertEquals("solr.BlobHandler", getObjectByPath(map, true, Arrays.asList(
- "config",
- "requestHandler",
- "/blob",
- "class")));
-
- byte[] bytarr = new byte[1024];
- for (int i = 0; i < bytarr.length; i++) bytarr[i]= (byte) (i % 127);
- byte[] bytarr2 = new byte[2048];
- for (int i = 0; i < bytarr2.length; i++) bytarr2[i]= (byte) (i % 127);
- postAndCheck(cloudClient, baseUrl, ByteBuffer.wrap( bytarr), 1);
- postAndCheck(cloudClient, baseUrl, ByteBuffer.wrap( bytarr2), 2);
-
- url = baseUrl + "/.system/blob/test/1";
- map = TestSolrConfigHandlerConcurrent.getAsMap(url,cloudClient);
- List l = (List) ConfigOverlay.getObjectByPath(map, false, Arrays.asList("response", "docs"));
- assertNotNull(""+map, l);
- assertTrue("" + map, l.size() > 0);
- map = (Map) l.get(0);
- assertEquals(""+bytarr.length,String.valueOf(map.get("size")));
-
- compareInputAndOutput(baseUrl+"/.system/blob/test?wt=filestream", bytarr2);
- compareInputAndOutput(baseUrl+"/.system/blob/test/1?wt=filestream", bytarr);
-
+ try {
+ CollectionAdminResponse response1;
+ CollectionAdminRequest.Create createCollectionRequest = new CollectionAdminRequest.Create();
+ createCollectionRequest.setCollectionName(".system");
+ createCollectionRequest.setNumShards(1);
+ createCollectionRequest.setReplicationFactor(2);
+ response1 = createCollectionRequest.process(client);
+ assertEquals(0, response1.getStatus());
+ assertTrue(response1.isSuccess());
+ DocCollection sysColl = cloudClient.getZkStateReader().getClusterState().getCollection(".system");
+ Replica replica = sysColl.getActiveSlicesMap().values().iterator().next().getLeader();
+
+ String baseUrl = replica.getStr(ZkStateReader.BASE_URL_PROP);
+ String url = baseUrl + "/.system/config/requestHandler";
+ Map map = TestSolrConfigHandlerConcurrent.getAsMap(url, cloudClient);
+ assertNotNull(map);
+ assertEquals("solr.BlobHandler", getObjectByPath(map, true, Arrays.asList(
+ "config",
+ "requestHandler",
+ "/blob",
+ "class")));
+
+ byte[] bytarr = new byte[1024];
+ for (int i = 0; i < bytarr.length; i++) bytarr[i]= (byte) (i % 127);
+ byte[] bytarr2 = new byte[2048];
+ for (int i = 0; i < bytarr2.length; i++) bytarr2[i]= (byte) (i % 127);
+ postAndCheck(cloudClient, baseUrl, ByteBuffer.wrap( bytarr), 1);
+ postAndCheck(cloudClient, baseUrl, ByteBuffer.wrap( bytarr2), 2);
+
+ url = baseUrl + "/.system/blob/test/1";
+ map = TestSolrConfigHandlerConcurrent.getAsMap(url,cloudClient);
+ List l = (List) ConfigOverlay.getObjectByPath(map, false, Arrays.asList("response", "docs"));
+ assertNotNull(""+map, l);
+ assertTrue("" + map, l.size() > 0);
+ map = (Map) l.get(0);
+ assertEquals(""+bytarr.length,String.valueOf(map.get("size")));
+
+ compareInputAndOutput(baseUrl+"/.system/blob/test?wt=filestream", bytarr2);
+ compareInputAndOutput(baseUrl+"/.system/blob/test/1?wt=filestream", bytarr);
+ } finally {
+ client.shutdown();
+ }
}
public static void createSysColl(SolrClient client) throws SolrServerException, IOException {
Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/handler/TestConfigReload.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/handler/TestConfigReload.java?rev=1650612&r1=1650611&r2=1650612&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/handler/TestConfigReload.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/handler/TestConfigReload.java Fri Jan 9 17:45:38 2015
@@ -17,6 +17,9 @@ package org.apache.solr.handler;
* limitations under the License.
*/
+import static java.util.Arrays.asList;
+import static org.apache.solr.core.ConfigOverlay.getObjectByPath;
+
import java.io.StringReader;
import java.nio.charset.StandardCharsets;
import java.text.MessageFormat;
@@ -44,14 +47,12 @@ import org.apache.solr.util.RestTestHarn
import org.apache.zookeeper.CreateMode;
import org.apache.zookeeper.KeeperException;
import org.apache.zookeeper.data.Stat;
+import org.junit.After;
import org.noggit.JSONParser;
import org.noggit.ObjectBuilder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import static java.util.Arrays.asList;
-import static org.apache.solr.core.ConfigOverlay.getObjectByPath;
-
public class TestConfigReload extends AbstractFullDistribZkTestBase {
@@ -69,11 +70,25 @@ public class TestConfigReload extends Ab
restTestHarnesses.add(harness);
}
}
+
+ @After
+ public void tearDown() throws Exception {
+ super.tearDown();
+ for (RestTestHarness h : restTestHarnesses) {
+ h.close();
+ }
+ }
@Override
public void doTest() throws Exception {
setupHarnesses();
- reloadTest();
+ try {
+ reloadTest();
+ } finally {
+ for (RestTestHarness h : restTestHarnesses) {
+ h.close();
+ }
+ }
}
private void reloadTest() throws Exception {
Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/handler/TestReplicationHandler.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/handler/TestReplicationHandler.java?rev=1650612&r1=1650611&r2=1650612&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/handler/TestReplicationHandler.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/handler/TestReplicationHandler.java Fri Jan 9 17:45:38 2015
@@ -905,6 +905,9 @@ public class TestReplicationHandler exte
repeater.tearDown();
repeaterJetty = null;
}
+ if (repeaterClient != null) {
+ repeaterClient.shutdown();
+ }
}
}
Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/handler/TestSolrConfigHandlerCloud.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/handler/TestSolrConfigHandlerCloud.java?rev=1650612&r1=1650611&r2=1650612&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/handler/TestSolrConfigHandlerCloud.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/handler/TestSolrConfigHandlerCloud.java Fri Jan 9 17:45:38 2015
@@ -35,6 +35,7 @@ import org.apache.solr.core.ConfigOverla
import org.apache.solr.core.TestSolrConfigHandler;
import org.apache.solr.util.RESTfulServerProvider;
import org.apache.solr.util.RestTestHarness;
+import org.junit.After;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -53,13 +54,20 @@ public class TestSolrConfigHandlerCloud
restTestHarnesses.add(harness);
}
}
+
+ @After
+ public void tearDown() throws Exception {
+ super.tearDown();
+ for (RestTestHarness r : restTestHarnesses) {
+ r.close();
+ }
+ }
@Override
public void doTest() throws Exception {
setupHarnesses();
testReqHandlerAPIs();
testReqParams();
-
}
private void testReqHandlerAPIs() throws Exception {
Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/handler/TestSolrConfigHandlerConcurrent.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/handler/TestSolrConfigHandlerConcurrent.java?rev=1650612&r1=1650611&r2=1650612&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/handler/TestSolrConfigHandlerConcurrent.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/handler/TestSolrConfigHandlerConcurrent.java Fri Jan 9 17:45:38 2015
@@ -17,6 +17,10 @@ package org.apache.solr.handler;
* limitations under the License.
*/
+import static java.util.Arrays.asList;
+import static org.apache.solr.core.ConfigOverlay.getObjectByPath;
+import static org.noggit.ObjectBuilder.getVal;
+
import java.io.IOException;
import java.io.StringReader;
import java.nio.charset.StandardCharsets;
@@ -44,15 +48,12 @@ import org.apache.solr.common.cloud.ZkSt
import org.apache.solr.core.ConfigOverlay;
import org.apache.solr.util.RESTfulServerProvider;
import org.apache.solr.util.RestTestHarness;
+import org.junit.After;
import org.noggit.JSONParser;
import org.noggit.ObjectBuilder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import static java.util.Arrays.asList;
-import static org.apache.solr.core.ConfigOverlay.getObjectByPath;
-import static org.noggit.ObjectBuilder.getVal;
-
public class TestSolrConfigHandlerConcurrent extends AbstractFullDistribZkTestBase {
@@ -71,6 +72,14 @@ public class TestSolrConfigHandlerConcur
restTestHarnesses.add(harness);
}
}
+
+ @After
+ public void tearDown() throws Exception {
+ super.tearDown();
+ for (RestTestHarness h : restTestHarnesses) {
+ h.close();
+ }
+ }
@Override
public void doTest() throws Exception {
@@ -133,15 +142,24 @@ public class TestSolrConfigHandlerConcur
Set<String> errmessages = new HashSet<>();
for(int i =1;i<2;i++){//make it ahigher number
RestTestHarness publisher = restTestHarnesses.get(r.nextInt(restTestHarnesses.size()));
- payload = payload.replaceAll("CACHENAME" , cacheName);
- String val1 = String.valueOf(10 * i + 1);
- payload = payload.replace("CACHEVAL1", val1);
- String val2 = String.valueOf(10 * i + 2);
- payload = payload.replace("CACHEVAL2", val2);
- String val3 = String.valueOf(10 * i + 3);
- payload = payload.replace("CACHEVAL3", val3);
-
- String response = publisher.post("/config?wt=json", SolrTestCaseJ4.json(payload));
+ String response;
+ String val1;
+ String val2;
+ String val3;
+ try {
+ payload = payload.replaceAll("CACHENAME" , cacheName);
+ val1 = String.valueOf(10 * i + 1);
+ payload = payload.replace("CACHEVAL1", val1);
+ val2 = String.valueOf(10 * i + 2);
+ payload = payload.replace("CACHEVAL2", val2);
+ val3 = String.valueOf(10 * i + 3);
+ payload = payload.replace("CACHEVAL3", val3);
+
+ response = publisher.post("/config?wt=json", SolrTestCaseJ4.json(payload));
+ } finally {
+ publisher.close();
+ }
+
Map map = (Map) getVal(new JSONParser(new StringReader(response)));
Object errors = map.get("errors");
if(errors!= null){
Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/rest/schema/TestBulkSchemaAPI.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/rest/schema/TestBulkSchemaAPI.java?rev=1650612&r1=1650611&r2=1650612&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/rest/schema/TestBulkSchemaAPI.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/rest/schema/TestBulkSchemaAPI.java Fri Jan 9 17:45:38 2015
@@ -73,6 +73,9 @@ public class TestBulkSchemaAPI extends R
jetty = null;
}
client = null;
+ if (restTestHarness != null) {
+ restTestHarness.close();
+ }
restTestHarness = null;
}
Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/rest/schema/TestManagedSchemaDynamicFieldResource.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/rest/schema/TestManagedSchemaDynamicFieldResource.java?rev=1650612&r1=1650611&r2=1650612&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/rest/schema/TestManagedSchemaDynamicFieldResource.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/rest/schema/TestManagedSchemaDynamicFieldResource.java Fri Jan 9 17:45:38 2015
@@ -63,6 +63,9 @@ public class TestManagedSchemaDynamicFie
jetty = null;
}
client = null;
+ if (restTestHarness != null) {
+ restTestHarness.close();
+ }
restTestHarness = null;
}
Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/rest/schema/TestManagedSchemaFieldResource.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/rest/schema/TestManagedSchemaFieldResource.java?rev=1650612&r1=1650611&r2=1650612&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/rest/schema/TestManagedSchemaFieldResource.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/rest/schema/TestManagedSchemaFieldResource.java Fri Jan 9 17:45:38 2015
@@ -63,6 +63,9 @@ public class TestManagedSchemaFieldResou
jetty = null;
}
client = null;
+ if (restTestHarness != null) {
+ restTestHarness.close();
+ }
restTestHarness = null;
}
Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/rest/schema/TestManagedSchemaFieldTypeResource.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/rest/schema/TestManagedSchemaFieldTypeResource.java?rev=1650612&r1=1650611&r2=1650612&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/rest/schema/TestManagedSchemaFieldTypeResource.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/rest/schema/TestManagedSchemaFieldTypeResource.java Fri Jan 9 17:45:38 2015
@@ -66,6 +66,11 @@ public class TestManagedSchemaFieldTypeR
jetty = null;
System.clearProperty("managed.schema.mutable");
System.clearProperty("enable.update.log");
+
+ if (restTestHarness != null) {
+ restTestHarness.close();
+ }
+ restTestHarness = null;
}
@Test
Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/rest/schema/analysis/TestManagedStopFilterFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/rest/schema/analysis/TestManagedStopFilterFactory.java?rev=1650612&r1=1650611&r2=1650612&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/rest/schema/analysis/TestManagedStopFilterFactory.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/rest/schema/analysis/TestManagedStopFilterFactory.java Fri Jan 9 17:45:38 2015
@@ -66,6 +66,11 @@ public class TestManagedStopFilterFactor
jetty = null;
System.clearProperty("managed.schema.mutable");
System.clearProperty("enable.update.log");
+
+ if (restTestHarness != null) {
+ restTestHarness.close();
+ }
+ restTestHarness = null;
}
Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/rest/schema/analysis/TestManagedSynonymFilterFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/rest/schema/analysis/TestManagedSynonymFilterFactory.java?rev=1650612&r1=1650611&r2=1650612&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/rest/schema/analysis/TestManagedSynonymFilterFactory.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/rest/schema/analysis/TestManagedSynonymFilterFactory.java Fri Jan 9 17:45:38 2015
@@ -63,6 +63,11 @@ public class TestManagedSynonymFilterFac
FileUtils.deleteDirectory(tmpSolrHome);
System.clearProperty("managed.schema.mutable");
System.clearProperty("enable.update.log");
+
+ if (restTestHarness != null) {
+ restTestHarness.close();
+ }
+ restTestHarness = null;
}
@Test
Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/schema/TestBinaryField.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/schema/TestBinaryField.java?rev=1650612&r1=1650611&r2=1650612&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/schema/TestBinaryField.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/schema/TestBinaryField.java Fri Jan 9 17:45:38 2015
@@ -14,11 +14,17 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
package org.apache.solr.schema;
+import java.io.File;
+import java.nio.ByteBuffer;
+import java.util.List;
+
import org.apache.commons.io.FileUtils;
import org.apache.solr.SolrJettyTestBase;
import org.apache.solr.SolrTestCaseJ4;
+import org.apache.solr.SolrTestCaseJ4.SuppressSSL;
import org.apache.solr.client.solrj.SolrClient;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.beans.Field;
@@ -28,10 +34,7 @@ import org.apache.solr.common.SolrDocume
import org.apache.solr.common.SolrInputDocument;
import org.junit.BeforeClass;
-import java.io.File;
-import java.nio.ByteBuffer;
-import java.util.List;
-
+@SuppressSSL(bugUrl = "https://issues.apache.org/jira/browse/SOLR-5776")
public class TestBinaryField extends SolrJettyTestBase {
@BeforeClass
@@ -86,6 +89,7 @@ public class TestBinaryField extends Sol
client.commit();
QueryResponse resp = client.query(new SolrQuery("*:*"));
+ client.shutdown();
SolrDocumentList res = resp.getResults();
List<Bean> beans = resp.getBeans(Bean.class);
assertEquals(3, res.size());
Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/schema/TestBulkSchemaConcurrent.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/schema/TestBulkSchemaConcurrent.java?rev=1650612&r1=1650611&r2=1650612&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/schema/TestBulkSchemaConcurrent.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/schema/TestBulkSchemaConcurrent.java Fri Jan 9 17:45:38 2015
@@ -18,6 +18,20 @@ package org.apache.solr.schema;
*/
+import static java.text.MessageFormat.format;
+import static org.apache.solr.rest.schema.TestBulkSchemaAPI.getCopyFields;
+import static org.apache.solr.rest.schema.TestBulkSchemaAPI.getObj;
+
+import java.io.IOException;
+import java.io.StringReader;
+import java.nio.charset.StandardCharsets;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.TimeUnit;
+
import org.apache.solr.SolrTestCaseJ4;
import org.apache.solr.client.solrj.SolrClient;
import org.apache.solr.client.solrj.impl.HttpSolrClient;
@@ -25,26 +39,13 @@ import org.apache.solr.cloud.AbstractFul
import org.apache.solr.common.cloud.ZkStateReader;
import org.apache.solr.util.RESTfulServerProvider;
import org.apache.solr.util.RestTestHarness;
+import org.junit.After;
import org.junit.BeforeClass;
import org.noggit.JSONParser;
import org.noggit.ObjectBuilder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.io.IOException;
-import java.io.StringReader;
-import java.nio.charset.StandardCharsets;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.TimeUnit;
-
-import static java.text.MessageFormat.format;
-import static org.apache.solr.rest.schema.TestBulkSchemaAPI.getCopyFields;
-import static org.apache.solr.rest.schema.TestBulkSchemaAPI.getObj;
-
public class TestBulkSchemaConcurrent extends AbstractFullDistribZkTestBase {
static final Logger log = LoggerFactory.getLogger(TestBulkSchemaConcurrent.class);
private List<RestTestHarness> restTestHarnesses = new ArrayList<>();
@@ -70,6 +71,15 @@ public class TestBulkSchemaConcurrent e
restTestHarnesses.add(harness);
}
}
+
+ @After
+ public void tearDown() throws Exception {
+ super.tearDown();
+ for (RestTestHarness r : restTestHarnesses) {
+ r.close();
+ }
+ }
+
@Override
public void doTest() throws Exception {
@@ -105,7 +115,6 @@ public class TestBulkSchemaConcurrent e
boolean success = true;
for (List e : collectErrors) {
- if(e== null) continue;
if(!e.isEmpty()){
success = false;
log.error(e.toString());
@@ -166,27 +175,31 @@ public class TestBulkSchemaConcurrent e
}
//get another node
- RestTestHarness harness = restTestHarnesses.get(r.nextInt(restTestHarnesses.size()));
- long startTime = System.nanoTime();
- boolean success = false;
- long maxTimeoutMillis = 100000;
Set<String> errmessages = new HashSet<>();
- while ( ! success
- && TimeUnit.MILLISECONDS.convert(System.nanoTime() - startTime, TimeUnit.NANOSECONDS) < maxTimeoutMillis) {
- errmessages.clear();
- Map m = getObj(harness, aField, "fields");
- if(m== null) errmessages.add(format("field {0} not created", aField));
-
- m = getObj(harness, dynamicFldName, "dynamicFields");
- if(m== null) errmessages.add(format("dynamic field {0} not created", dynamicFldName));
-
- List l = getCopyFields(harness, "a1");
- if(!checkCopyField(l,aField,dynamicCopyFldDest))
- errmessages.add(format("CopyField source={0},dest={1} not created" , aField,dynamicCopyFldDest));
-
- m = getObj(harness, "mystr", "fieldTypes");
- if(m == null) errmessages.add(format("new type {} not created" , newFieldTypeName));
- Thread.sleep(10);
+ RestTestHarness harness = restTestHarnesses.get(r.nextInt(restTestHarnesses.size()));
+ try {
+ long startTime = System.nanoTime();
+ boolean success = false;
+ long maxTimeoutMillis = 100000;
+ while (!success
+ && TimeUnit.MILLISECONDS.convert(System.nanoTime() - startTime, TimeUnit.NANOSECONDS) < maxTimeoutMillis) {
+ errmessages.clear();
+ Map m = getObj(harness, aField, "fields");
+ if (m == null) errmessages.add(format("field {0} not created", aField));
+
+ m = getObj(harness, dynamicFldName, "dynamicFields");
+ if (m == null) errmessages.add(format("dynamic field {0} not created", dynamicFldName));
+
+ List l = getCopyFields(harness, "a1");
+ if (!checkCopyField(l, aField, dynamicCopyFldDest)) errmessages
+ .add(format("CopyField source={0},dest={1} not created", aField, dynamicCopyFldDest));
+
+ m = getObj(harness, "mystr", "fieldTypes");
+ if (m == null) errmessages.add(format("new type {} not created", newFieldTypeName));
+ Thread.sleep(10);
+ }
+ } finally {
+ harness.close();
}
if(!errmessages.isEmpty()){
errs.addAll(errmessages);
Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/schema/TestCloudManagedSchemaConcurrent.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/schema/TestCloudManagedSchemaConcurrent.java?rev=1650612&r1=1650611&r2=1650612&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/schema/TestCloudManagedSchemaConcurrent.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/schema/TestCloudManagedSchemaConcurrent.java Fri Jan 9 17:45:38 2015
@@ -16,6 +16,12 @@ package org.apache.solr.schema;
* limitations under the License.
*/
+import java.util.ArrayList;
+import java.util.List;
+import java.util.SortedMap;
+import java.util.TreeMap;
+import java.util.concurrent.TimeUnit;
+
import org.apache.solr.client.solrj.SolrClient;
import org.apache.solr.client.solrj.embedded.JettySolrRunner;
import org.apache.solr.client.solrj.impl.HttpSolrClient;
@@ -25,25 +31,17 @@ import org.apache.solr.common.cloud.Repl
import org.apache.solr.common.cloud.Slice;
import org.apache.solr.common.cloud.SolrZkClient;
import org.apache.solr.common.cloud.ZkCoreNodeProps;
-import org.apache.solr.common.cloud.ZkStateReader;
import org.apache.solr.util.BaseTestHarness;
import org.apache.solr.util.RESTfulServerProvider;
import org.apache.solr.util.RestTestHarness;
+import org.apache.zookeeper.data.Stat;
import org.eclipse.jetty.servlet.ServletHolder;
+import org.junit.After;
+import org.junit.BeforeClass;
import org.restlet.ext.servlet.ServerServlet;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.apache.zookeeper.data.Stat;
-
-import org.junit.BeforeClass;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.SortedMap;
-import java.util.TreeMap;
-import java.util.concurrent.TimeUnit;
-
public class TestCloudManagedSchemaConcurrent extends AbstractFullDistribZkTestBase {
private static final Logger log = LoggerFactory.getLogger(TestCloudManagedSchemaConcurrent.class);
private static final String SUCCESS_XPATH = "/response/lst[@name='responseHeader']/int[@name='status'][.='0']";
@@ -67,6 +65,14 @@ public class TestCloudManagedSchemaConcu
System.setProperty("managed.schema.mutable", "true");
System.setProperty("enable.update.log", "true");
}
+
+ @After
+ public void tearDown() throws Exception {
+ super.tearDown();
+ for (RestTestHarness h : restTestHarnesses) {
+ h.close();
+ }
+ }
@Override
protected String getCloudSolrConfig() {
@@ -352,8 +358,11 @@ public class TestCloudManagedSchemaConcu
return coreUrl.endsWith("/") ? coreUrl.substring(0, coreUrl.length()-1) : coreUrl;
}
});
-
- addFieldTypePut(harness, "fooInt", 15);
+ try {
+ addFieldTypePut(harness, "fooInt", 15);
+ } finally {
+ harness.close();
+ }
// go into ZK to get the version of the managed schema after the update
SolrZkClient zkClient = cloudClient.getZkStateReader().getZkClient();
@@ -410,21 +419,24 @@ public class TestCloudManagedSchemaConcu
return replicaUrl.endsWith("/") ? replicaUrl.substring(0, replicaUrl.length()-1) : replicaUrl;
}
});
-
- long waitMs = waitSecs * 1000L;
- if (waitMs > 0) Thread.sleep(waitMs); // wait a moment for the zk watcher to fire
-
try {
- testHarness.validateQuery("/schema/zkversion?wt=xml", "//zkversion=" + schemaZkVersion);
- } catch (Exception exc) {
- if (retry) {
- // brief wait before retrying
- Thread.sleep(waitMs > 0 ? waitMs : 2000L);
-
+ long waitMs = waitSecs * 1000L;
+ if (waitMs > 0) Thread.sleep(waitMs); // wait a moment for the zk watcher to fire
+
+ try {
testHarness.validateQuery("/schema/zkversion?wt=xml", "//zkversion=" + schemaZkVersion);
- } else {
- throw exc;
+ } catch (Exception exc) {
+ if (retry) {
+ // brief wait before retrying
+ Thread.sleep(waitMs > 0 ? waitMs : 2000L);
+
+ testHarness.validateQuery("/schema/zkversion?wt=xml", "//zkversion=" + schemaZkVersion);
+ } else {
+ throw exc;
+ }
}
+ } finally {
+ testHarness.close();
}
}
Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/schema/TestCloudSchemaless.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/schema/TestCloudSchemaless.java?rev=1650612&r1=1650611&r2=1650612&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/schema/TestCloudSchemaless.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/schema/TestCloudSchemaless.java Fri Jan 9 17:45:38 2015
@@ -27,6 +27,7 @@ import org.apache.solr.util.BaseTestHarn
import org.apache.solr.util.RESTfulServerProvider;
import org.apache.solr.util.RestTestHarness;
import org.eclipse.jetty.servlet.ServletHolder;
+import org.junit.After;
import org.junit.BeforeClass;
import org.junit.Before;
import org.restlet.ext.servlet.ServerServlet;
@@ -58,6 +59,14 @@ public class TestCloudSchemaless extends
System.setProperty("numShards", Integer.toString(sliceCount));
}
+
+ @After
+ public void teardDown() throws Exception {
+ super.tearDown();
+ for (RestTestHarness h : restTestHarnesses) {
+ h.close();
+ }
+ }
public TestCloudSchemaless() {
schemaString = "schema-add-schema-fields-update-processor.xml";
Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/search/AnalyticsMergeStrategyTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/search/AnalyticsMergeStrategyTest.java?rev=1650612&r1=1650611&r2=1650612&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/search/AnalyticsMergeStrategyTest.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/search/AnalyticsMergeStrategyTest.java Fri Jan 9 17:45:38 2015
@@ -23,8 +23,6 @@ import org.apache.solr.common.params.Mod
import org.apache.solr.common.util.NamedList;
import org.junit.BeforeClass;
-import java.util.Arrays;
-
/**
* Test for QueryComponent's distributed querying
*
Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/search/TestRecoveryHdfs.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/search/TestRecoveryHdfs.java?rev=1650612&r1=1650611&r2=1650612&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/search/TestRecoveryHdfs.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/search/TestRecoveryHdfs.java Fri Jan 9 17:45:38 2015
@@ -19,7 +19,6 @@ package org.apache.solr.search;
import static org.apache.solr.update.processor.DistributingUpdateProcessorFactory.DISTRIB_UPDATE_PARAM;
-import java.io.File;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
@@ -42,15 +41,14 @@ import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hdfs.MiniDFSCluster;
import org.apache.solr.SolrTestCaseJ4;
-import org.apache.solr.cloud.hdfs.HdfsBasicDistributedZk2Test;
import org.apache.solr.cloud.hdfs.HdfsTestUtil;
+import org.apache.solr.common.util.IOUtils;
import org.apache.solr.request.SolrQueryRequest;
import org.apache.solr.update.DirectUpdateHandler2;
import org.apache.solr.update.HdfsUpdateLog;
import org.apache.solr.update.UpdateHandler;
import org.apache.solr.update.UpdateLog;
import org.apache.solr.update.processor.DistributedUpdateProcessor.DistribPhase;
-import org.apache.solr.util.IOUtils;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Ignore;
Modified: lucene/dev/branches/branch_5x/solr/solrj/src/java/org/apache/solr/client/solrj/impl/CloudSolrClient.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/solrj/src/java/org/apache/solr/client/solrj/impl/CloudSolrClient.java?rev=1650612&r1=1650611&r2=1650612&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/solrj/src/java/org/apache/solr/client/solrj/impl/CloudSolrClient.java (original)
+++ lucene/dev/branches/branch_5x/solr/solrj/src/java/org/apache/solr/client/solrj/impl/CloudSolrClient.java Fri Jan 9 17:45:38 2015
@@ -1055,7 +1055,7 @@ public class CloudSolrClient extends Sol
}
if (clientIsInternal && myClient!=null) {
- myClient.getConnectionManager().shutdown();
+ HttpClientUtil.close(myClient);
}
if(this.threadPool != null && !this.threadPool.isShutdown()) {
Modified: lucene/dev/branches/branch_5x/solr/solrj/src/java/org/apache/solr/client/solrj/impl/HttpClientConfigurer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/solrj/src/java/org/apache/solr/client/solrj/impl/HttpClientConfigurer.java?rev=1650612&r1=1650611&r2=1650612&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/solrj/src/java/org/apache/solr/client/solrj/impl/HttpClientConfigurer.java (original)
+++ lucene/dev/branches/branch_5x/solr/solrj/src/java/org/apache/solr/client/solrj/impl/HttpClientConfigurer.java Fri Jan 9 17:45:38 2015
@@ -29,7 +29,7 @@ import org.apache.solr.common.params.Sol
*/
public class HttpClientConfigurer {
- protected void configure(DefaultHttpClient httpClient, SolrParams config) {
+ public void configure(DefaultHttpClient httpClient, SolrParams config) {
if (config.get(HttpClientUtil.PROP_MAX_CONNECTIONS) != null) {
HttpClientUtil.setMaxConnections(httpClient,
Modified: lucene/dev/branches/branch_5x/solr/solrj/src/java/org/apache/solr/client/solrj/impl/HttpClientUtil.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/solrj/src/java/org/apache/solr/client/solrj/impl/HttpClientUtil.java?rev=1650612&r1=1650611&r2=1650612&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/solrj/src/java/org/apache/solr/client/solrj/impl/HttpClientUtil.java (original)
+++ lucene/dev/branches/branch_5x/solr/solrj/src/java/org/apache/solr/client/solrj/impl/HttpClientUtil.java Fri Jan 9 17:45:38 2015
@@ -38,6 +38,7 @@ import org.apache.http.conn.scheme.Schem
import org.apache.http.conn.ssl.SSLSocketFactory;
import org.apache.http.conn.ssl.X509HostnameVerifier;
import org.apache.http.entity.HttpEntityWrapper;
+import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.impl.client.DefaultHttpRequestRetryHandler;
import org.apache.http.impl.client.SystemDefaultHttpClient;
@@ -54,7 +55,6 @@ import org.slf4j.LoggerFactory;
* Utility class for creating/configuring httpclient instances.
*/
public class HttpClientUtil {
-
// socket timeout measured in ms, closes a socket if read
// takes longer than x ms to complete. throws
// java.net.SocketTimeoutException: Read timed out exception
@@ -109,7 +109,7 @@ public class HttpClientUtil {
* http client configuration, if null a client with default
* configuration (no additional configuration) is created.
*/
- public static HttpClient createClient(final SolrParams params) {
+ public static CloseableHttpClient createClient(final SolrParams params) {
final ModifiableSolrParams config = new ModifiableSolrParams(params);
if (logger.isDebugEnabled()) {
logger.debug("Creating new http client, config:" + config);
@@ -123,7 +123,7 @@ public class HttpClientUtil {
* Creates new http client by using the provided configuration.
*
*/
- public static HttpClient createClient(final SolrParams params, ClientConnectionManager cm) {
+ public static CloseableHttpClient createClient(final SolrParams params, ClientConnectionManager cm) {
final ModifiableSolrParams config = new ModifiableSolrParams(params);
if (logger.isDebugEnabled()) {
logger.debug("Creating new http client, config:" + config);
@@ -141,6 +141,14 @@ public class HttpClientUtil {
SolrParams config) {
configurer.configure(httpClient, config);
}
+
+ public static void close(HttpClient httpClient) {
+ if (httpClient instanceof CloseableHttpClient) {
+ org.apache.solr.common.util.IOUtils.closeQuietly((CloseableHttpClient) httpClient);
+ } else {
+ httpClient.getConnectionManager().shutdown();
+ }
+ }
/**
* Control HTTP payload compression.
@@ -269,6 +277,14 @@ public class HttpClientUtil {
}
}
+ public static void setStaleCheckingEnabled(final HttpClient httpClient, boolean enabled) {
+ HttpConnectionParams.setStaleCheckingEnabled(httpClient.getParams(), enabled);
+ }
+
+ public static void setTcpNoDelay(final HttpClient httpClient, boolean tcpNoDelay) {
+ HttpConnectionParams.setTcpNoDelay(httpClient.getParams(), tcpNoDelay);
+ }
+
private static class UseCompressionRequestInterceptor implements
HttpRequestInterceptor {
Modified: lucene/dev/branches/branch_5x/solr/solrj/src/java/org/apache/solr/client/solrj/impl/HttpSolrClient.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/solrj/src/java/org/apache/solr/client/solrj/impl/HttpSolrClient.java?rev=1650612&r1=1650611&r2=1650612&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/solrj/src/java/org/apache/solr/client/solrj/impl/HttpSolrClient.java (original)
+++ lucene/dev/branches/branch_5x/solr/solrj/src/java/org/apache/solr/client/solrj/impl/HttpSolrClient.java Fri Jan 9 17:45:38 2015
@@ -754,7 +754,7 @@ public class HttpSolrClient extends Solr
@Override
public void shutdown() {
if (httpClient != null && internalClient) {
- httpClient.getConnectionManager().shutdown();
+ HttpClientUtil.close(httpClient);
}
}
Modified: lucene/dev/branches/branch_5x/solr/solrj/src/java/org/apache/solr/client/solrj/impl/LBHttpSolrClient.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/solrj/src/java/org/apache/solr/client/solrj/impl/LBHttpSolrClient.java?rev=1650612&r1=1650611&r2=1650612&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/solrj/src/java/org/apache/solr/client/solrj/impl/LBHttpSolrClient.java (original)
+++ lucene/dev/branches/branch_5x/solr/solrj/src/java/org/apache/solr/client/solrj/impl/LBHttpSolrClient.java Fri Jan 9 17:45:38 2015
@@ -457,7 +457,7 @@ public class LBHttpSolrClient extends So
aliveCheckExecutor.shutdownNow();
}
if(clientIsInternal) {
- httpClient.getConnectionManager().shutdown();
+ HttpClientUtil.close(httpClient);
}
}