You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ro...@apache.org on 2014/03/25 15:46:20 UTC
svn commit: r1581360 - in /lucene/dev/trunk/solr: ./
core/src/java/org/apache/solr/cloud/ core/src/java/org/apache/solr/core/
core/src/java/org/apache/solr/handler/admin/ core/src/test/org/apache/solr/
core/src/test/org/apache/solr/core/ core/src/test/...
Author: romseygeek
Date: Tue Mar 25 14:46:19 2014
New Revision: 1581360
URL: http://svn.apache.org/r1581360
Log:
SOLR-5903: SolrCore implements Closeable
Modified:
lucene/dev/trunk/solr/CHANGES.txt
lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/ElectionContext.java
lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/RecoveryStrategy.java
lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/ZkController.java
lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/CoreContainer.java
lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/SolrCore.java
lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminHandler.java
lucene/dev/trunk/solr/core/src/test/org/apache/solr/AnalysisAfterCoreReloadTest.java
lucene/dev/trunk/solr/core/src/test/org/apache/solr/core/CoreContainerCoreInitFailuresTest.java
lucene/dev/trunk/solr/core/src/test/org/apache/solr/core/TestCoreDiscovery.java
lucene/dev/trunk/solr/core/src/test/org/apache/solr/core/TestJmxIntegration.java
lucene/dev/trunk/solr/core/src/test/org/apache/solr/core/TestSolrXmlPersistence.java
lucene/dev/trunk/solr/core/src/test/org/apache/solr/handler/admin/CoreAdminHandlerTest.java
lucene/dev/trunk/solr/core/src/test/org/apache/solr/handler/admin/CoreAdminRequestStatusTest.java
lucene/dev/trunk/solr/core/src/test/org/apache/solr/handler/admin/CoreMergeIndexesAdminHandlerTest.java
lucene/dev/trunk/solr/core/src/test/org/apache/solr/schema/ChangedSchemaMergeTest.java
lucene/dev/trunk/solr/core/src/test/org/apache/solr/schema/DocValuesMultiTest.java
lucene/dev/trunk/solr/core/src/test/org/apache/solr/schema/DocValuesTest.java
lucene/dev/trunk/solr/core/src/test/org/apache/solr/schema/ModifyConfFileTest.java
lucene/dev/trunk/solr/core/src/test/org/apache/solr/update/SolrCmdDistributorTest.java
lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/MergeIndexesEmbeddedTest.java
lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/request/TestCoreAdmin.java
lucene/dev/trunk/solr/test-framework/src/java/org/apache/solr/cloud/ChaosMonkey.java
lucene/dev/trunk/solr/test-framework/src/java/org/apache/solr/util/TestHarness.java
Modified: lucene/dev/trunk/solr/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/CHANGES.txt?rev=1581360&r1=1581359&r2=1581360&view=diff
==============================================================================
--- lucene/dev/trunk/solr/CHANGES.txt (original)
+++ lucene/dev/trunk/solr/CHANGES.txt Tue Mar 25 14:46:19 2014
@@ -237,6 +237,9 @@ Other Changes
* SOLR-5228: Don't require <field> or <dynamicField> be inside of <fields> -- or
that <fieldType> be inside of <types>. (Erick Erickson)
+* SOLR-5903: SolrCore implements Closeable, cut over to using try-with-resources
+ where possible. (Alan Woodward)
+
================== 4.7.1 ==================
Versions of Major Components
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/ElectionContext.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/ElectionContext.java?rev=1581360&r1=1581359&r2=1581360&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/ElectionContext.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/ElectionContext.java Tue Mar 25 14:46:19 2014
@@ -1,9 +1,5 @@
package org.apache.solr.cloud;
-import java.io.IOException;
-import java.util.Map;
-import java.util.concurrent.TimeUnit;
-
import org.apache.lucene.search.MatchAllDocsQuery;
import org.apache.solr.common.SolrException;
import org.apache.solr.common.SolrException.ErrorCode;
@@ -29,6 +25,10 @@ import org.apache.zookeeper.KeeperExcept
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import java.io.IOException;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
+
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -194,12 +194,9 @@ final class ShardLeaderElectionContext e
if (!weAreReplacement) {
waitForReplicasToComeUp(weAreReplacement, leaderVoteWait);
}
-
- SolrCore core = null;
- try {
-
- core = cc.getCore(coreName);
-
+
+ try (SolrCore core = cc.getCore(coreName)) {
+
if (core == null) {
cancelElection();
throw new SolrException(ErrorCode.SERVER_ERROR,
@@ -287,10 +284,6 @@ final class ShardLeaderElectionContext e
log.info("I am the new leader: "
+ ZkCoreNodeProps.getCoreUrl(leaderProps) + " " + shardId);
core.getCoreDescriptor().getCloudDescriptor().setLeader(true);
- } finally {
- if (core != null) {
- core.close();
- }
}
boolean success = false;
try {
@@ -299,8 +292,8 @@ final class ShardLeaderElectionContext e
} catch (Exception e) {
SolrException.log(log, "There was a problem trying to register as the leader", e);
- try {
- core = cc.getCore(coreName);
+ try (SolrCore core = cc.getCore(coreName)) {
+
if (core == null) {
throw new SolrException(ErrorCode.SERVER_ERROR,
"Fatal Error, SolrCore not found:" + coreName + " in "
@@ -312,16 +305,8 @@ final class ShardLeaderElectionContext e
// we could not publish ourselves as leader - rejoin election
rejoinLeaderElection(leaderSeqPath, core);
} finally {
- try {
- if (!success) {
- cancelElection();
- }
- } finally {
- if (core != null) {
- core.close();
- }
- }
-
+ if (!success)
+ cancelElection();
}
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/RecoveryStrategy.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/RecoveryStrategy.java?rev=1581360&r1=1581359&r2=1581360&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/RecoveryStrategy.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/RecoveryStrategy.java Tue Mar 25 14:46:19 2014
@@ -17,14 +17,6 @@ package org.apache.solr.cloud;
* limitations under the License.
*/
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.Future;
-
import org.apache.http.client.methods.HttpUriRequest;
import org.apache.lucene.search.MatchAllDocsQuery;
import org.apache.lucene.store.Directory;
@@ -66,6 +58,14 @@ import org.apache.zookeeper.KeeperExcept
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.Future;
+
public class RecoveryStrategy extends Thread implements ClosableThread {
private static final int MAX_RETRIES = 500;
private static final int INTERRUPTED = MAX_RETRIES + 1;
@@ -216,14 +216,15 @@ public class RecoveryStrategy extends Th
@Override
public void run() {
- SolrCore core = cc.getCore(coreName);
- if (core == null) {
- SolrException.log(log, "SolrCore not found - cannot recover:" + coreName);
- return;
- }
// set request info for logging
- try {
+ try (SolrCore core = cc.getCore(coreName)) {
+
+ if (core == null) {
+ SolrException.log(log, "SolrCore not found - cannot recover:" + coreName);
+ return;
+ }
+
SolrQueryRequest req = new LocalSolrQueryRequest(core, new ModifiableSolrParams());
SolrQueryResponse rsp = new SolrQueryResponse();
SolrRequestInfo.setRequestInfo(new SolrRequestInfo(req, rsp));
@@ -243,7 +244,6 @@ public class RecoveryStrategy extends Th
"", e);
}
} finally {
- if (core != null) core.close();
SolrRequestInfo.clearRequestInfo();
}
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/ZkController.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/ZkController.java?rev=1581360&r1=1581359&r2=1581360&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/ZkController.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/ZkController.java Tue Mar 25 14:46:19 2014
@@ -17,28 +17,6 @@ package org.apache.solr.cloud;
* limitations under the License.
*/
-import java.io.File;
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-import java.net.InetAddress;
-import java.net.NetworkInterface;
-import java.net.URLEncoder;
-import java.net.UnknownHostException;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Properties;
-import java.util.Set;
-import java.util.concurrent.Future;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.TimeoutException;
-
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.solr.client.solrj.impl.HttpSolrServer;
@@ -74,6 +52,28 @@ import org.apache.zookeeper.data.Stat;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import java.io.File;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.InetAddress;
+import java.net.NetworkInterface;
+import java.net.URLEncoder;
+import java.net.UnknownHostException;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.Properties;
+import java.util.Set;
+import java.util.concurrent.Future;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
+
/**
* Handle ZooKeeper interactions.
*
@@ -802,13 +802,9 @@ public final class ZkController {
String ourUrl = ZkCoreNodeProps.getCoreUrl(baseUrl, coreName);
log.info("We are " + ourUrl + " and leader is " + leaderUrl);
boolean isLeader = leaderUrl.equals(ourUrl);
-
- SolrCore core = null;
- try {
- core = cc.getCore(desc.getName());
+ try (SolrCore core = cc.getCore(desc.getName())) {
-
// recover from local transaction log and wait for it to complete before
// going active
// TODO: should this be moved to another thread? To recoveryStrat?
@@ -837,12 +833,7 @@ public final class ZkController {
publish(desc, ZkStateReader.ACTIVE);
}
}
- } finally {
- if (core != null) {
- core.close();
- }
}
-
// make sure we have an update cluster state right away
zkStateReader.updateClusterState(true);
@@ -1028,16 +1019,10 @@ public final class ZkController {
*/
public void publish(final CoreDescriptor cd, final String state, boolean updateLastState, boolean forcePublish) throws KeeperException, InterruptedException {
if (!forcePublish) {
- SolrCore core = cc.getCore(cd.getName());
- if (core == null) {
- return;
- }
- try {
- if (core.isClosed()) {
+ try (SolrCore core = cc.getCore(cd.getName())) {
+ if (core == null || core.isClosed()) {
return;
}
- } finally {
- core.close();
}
}
String collection = cd.getCloudDescriptor().getCollectionName();
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/CoreContainer.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/CoreContainer.java?rev=1581360&r1=1581359&r2=1581360&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/CoreContainer.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/CoreContainer.java Tue Mar 25 14:46:19 2014
@@ -692,18 +692,13 @@ public class CoreContainer {
}
public void rename(String name, String toName) {
- SolrCore core = getCore(name);
- try {
+ try (SolrCore core = getCore(name)) {
if (core != null) {
registerCore(false, toName, core, false);
name = checkDefault(name);
SolrCore old = solrCores.remove(name, false);
coresLocator.rename(this, old.getCoreDescriptor(), core.getCoreDescriptor());
}
- } finally {
- if (core != null) {
- core.close();
- }
}
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/SolrCore.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/SolrCore.java?rev=1581360&r1=1581359&r2=1581360&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/SolrCore.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/SolrCore.java Tue Mar 25 14:46:19 2014
@@ -99,6 +99,7 @@ import org.slf4j.LoggerFactory;
import org.xml.sax.SAXException;
import javax.xml.parsers.ParserConfigurationException;
+import java.io.Closeable;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
@@ -137,7 +138,7 @@ import java.util.concurrent.locks.Reentr
/**
*
*/
-public final class SolrCore implements SolrInfoMBean {
+public final class SolrCore implements SolrInfoMBean, Closeable {
public static final String version="1.0";
// These should *only* be used for debugging or monitoring purposes
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminHandler.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminHandler.java?rev=1581360&r1=1581359&r2=1581360&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminHandler.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminHandler.java Tue Mar 25 14:46:19 2014
@@ -34,7 +34,6 @@ import org.apache.solr.common.SolrExcept
import org.apache.solr.common.cloud.ClusterState;
import org.apache.solr.common.cloud.DocCollection;
import org.apache.solr.common.cloud.DocRouter;
-import org.apache.solr.common.cloud.Replica;
import org.apache.solr.common.cloud.Slice;
import org.apache.solr.common.cloud.ZkNodeProps;
import org.apache.solr.common.cloud.ZkStateReader;
@@ -856,9 +855,8 @@ public class CoreAdminHandler extends Re
if (cname == null) {
cname = "";
}
- SolrCore core = null;
- try {
- core = coreContainer.getCore(cname);
+ try (SolrCore core = coreContainer.getCore(cname)) {
+
if (core != null) {
// try to publish as recovering right away
try {
@@ -877,11 +875,6 @@ public class CoreAdminHandler extends Re
} else {
SolrException.log(log, "Could not find core to call recovery:" + cname);
}
- } finally {
- // no recoveryStrat close for now
- if (core != null) {
- core.close();
- }
}
}
};
@@ -903,10 +896,10 @@ public class CoreAdminHandler extends Re
if (cname == null) {
throw new IllegalArgumentException(CoreAdminParams.CORE + " is required");
}
- SolrCore core = null;
+
SyncStrategy syncStrategy = null;
- try {
- core = coreContainer.getCore(cname);
+ try (SolrCore core = coreContainer.getCore(cname)) {
+
if (core != null) {
syncStrategy = new SyncStrategy(core.getCoreDescriptor().getCoreContainer());
@@ -942,9 +935,6 @@ public class CoreAdminHandler extends Re
}
} finally {
// no recoveryStrat close for now
- if (core != null) {
- core.close();
- }
if (syncStrategy != null) {
syncStrategy.close();
}
@@ -977,9 +967,7 @@ public class CoreAdminHandler extends Re
boolean live = false;
int retry = 0;
while (true) {
- SolrCore core = null;
- try {
- core = coreContainer.getCore(cname);
+ try (SolrCore core = coreContainer.getCore(cname)) {
if (core == null && retry == 30) {
throw new SolrException(ErrorCode.BAD_REQUEST, "core not found:"
+ cname);
@@ -1098,10 +1086,6 @@ public class CoreAdminHandler extends Re
throw new SolrException(ErrorCode.SERVER_ERROR, null, e);
}
}
- } finally {
- if (core != null) {
- core.close();
- }
}
Thread.sleep(1000);
}
@@ -1113,9 +1097,10 @@ public class CoreAdminHandler extends Re
private void handleRequestApplyUpdatesAction(SolrQueryRequest req, SolrQueryResponse rsp) {
SolrParams params = req.getParams();
String cname = params.get(CoreAdminParams.NAME, "");
- SolrCore core = coreContainer.getCore(cname);
log.info("Applying buffered updates on core: " + cname);
- try {
+ try (SolrCore core = coreContainer.getCore(cname)) {
+ if (core == null)
+ throw new SolrException(ErrorCode.BAD_REQUEST, "Core [" + cname + "] not found");
UpdateLog updateLog = core.getUpdateHandler().getUpdateLog();
if (updateLog.getState() != UpdateLog.State.BUFFERING) {
throw new SolrException(ErrorCode.SERVER_ERROR, "Core " + cname + " not in buffering state");
@@ -1145,8 +1130,6 @@ public class CoreAdminHandler extends Re
throw new SolrException(ErrorCode.SERVER_ERROR, "Could not apply buffered updates", e);
} finally {
if (req != null) req.close();
- if (core != null)
- core.close();
}
}
@@ -1154,9 +1137,11 @@ public class CoreAdminHandler extends Re
private void handleRequestBufferUpdatesAction(SolrQueryRequest req, SolrQueryResponse rsp) {
SolrParams params = req.getParams();
String cname = params.get(CoreAdminParams.NAME, "");
- SolrCore core = coreContainer.getCore(cname);
log.info("Starting to buffer updates on core:" + cname);
- try {
+
+ try (SolrCore core = coreContainer.getCore(cname)) {
+ if (core == null)
+ throw new SolrException(ErrorCode.BAD_REQUEST, "Core [" + cname + "] does not exist");
UpdateLog updateLog = core.getUpdateHandler().getUpdateLog();
if (updateLog.getState() != UpdateLog.State.ACTIVE) {
throw new SolrException(ErrorCode.SERVER_ERROR, "Core " + cname + " not in active state");
@@ -1171,8 +1156,6 @@ public class CoreAdminHandler extends Re
throw new SolrException(ErrorCode.SERVER_ERROR, "Could not start buffering updates", e);
} finally {
if (req != null) req.close();
- if (core != null)
- core.close();
}
}
@@ -1204,9 +1187,8 @@ public class CoreAdminHandler extends Re
info.add("isLoaded", "false");
}
} else {
- SolrCore core = cores.getCore(cname);
- if (core != null) {
- try {
+ try (SolrCore core = cores.getCore(cname)) {
+ if (core != null) {
info.add("name", core.getName());
info.add("isDefaultCore", core.getName().equals(cores.getDefaultCoreName()));
info.add("instanceDir", normalizePath(core.getResourceLoader().getInstanceDir()));
@@ -1227,8 +1209,6 @@ public class CoreAdminHandler extends Re
searcher.decref();
}
}
- } finally {
- core.close();
}
}
}
Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/AnalysisAfterCoreReloadTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/AnalysisAfterCoreReloadTest.java?rev=1581360&r1=1581359&r2=1581360&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/AnalysisAfterCoreReloadTest.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/AnalysisAfterCoreReloadTest.java Tue Mar 25 14:46:19 2014
@@ -17,9 +17,6 @@ package org.apache.solr;
* limitations under the License.
*/
-import java.io.File;
-import java.io.IOException;
-
import org.apache.commons.io.FileUtils;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServer;
@@ -29,8 +26,11 @@ import org.apache.solr.client.solrj.requ
import org.apache.solr.client.solrj.request.UpdateRequest;
import org.apache.solr.common.SolrInputDocument;
import org.apache.solr.core.SolrCore;
-import org.junit.BeforeClass;
import org.junit.AfterClass;
+import org.junit.BeforeClass;
+
+import java.io.File;
+import java.io.IOException;
public class AnalysisAfterCoreReloadTest extends SolrTestCaseJ4 {
@@ -116,26 +116,20 @@ public class AnalysisAfterCoreReloadTest
}
private void overwriteStopwords(String stopwords) throws IOException {
- SolrCore core = h.getCoreContainer().getCore(collection);
- try {
+ try (SolrCore core = h.getCoreContainer().getCore(collection)) {
String configDir = core.getResourceLoader().getConfigDir();
FileUtils.moveFile(new File(configDir, "stopwords.txt"), new File(configDir, "stopwords.txt.bak"));
File file = new File(configDir, "stopwords.txt");
FileUtils.writeStringToFile(file, stopwords, "UTF-8");
- } finally {
- core.close();
}
}
@Override
public void tearDown() throws Exception {
- SolrCore core = h.getCoreContainer().getCore(collection);
String configDir;
- try {
+ try (SolrCore core = h.getCoreContainer().getCore(collection)) {
configDir = core.getResourceLoader().getConfigDir();
- } finally {
- core.close();
}
super.tearDown();
if (new File(configDir, "stopwords.txt.bak").exists()) {
Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/core/CoreContainerCoreInitFailuresTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/core/CoreContainerCoreInitFailuresTest.java?rev=1581360&r1=1581359&r2=1581360&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/core/CoreContainerCoreInitFailuresTest.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/core/CoreContainerCoreInitFailuresTest.java Tue Mar 25 14:46:19 2014
@@ -343,13 +343,9 @@ public class CoreContainerCoreInitFailur
}
- private final long getCoreStartTime(final CoreContainer cc,
- final String name) {
- SolrCore tmp = cc.getCore(name);
- try {
+ private long getCoreStartTime(final CoreContainer cc, final String name) {
+ try (SolrCore tmp = cc.getCore(name)) {
return tmp.getStartTime();
- } finally {
- tmp.close();
}
}
Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/core/TestCoreDiscovery.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/core/TestCoreDiscovery.java?rev=1581360&r1=1581359&r2=1581360&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/core/TestCoreDiscovery.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/core/TestCoreDiscovery.java Tue Mar 25 14:46:19 2014
@@ -142,28 +142,27 @@ public class TestCoreDiscovery extends S
TestLazyCores.checkInCores(cc, "core1");
TestLazyCores.checkNotInCores(cc, "lazy1", "core2", "collection1");
- SolrCore core1 = cc.getCore("core1");
+ // force loading of core2 and lazy1 by getting them from the CoreContainer
+ try (SolrCore core1 = cc.getCore("core1");
+ SolrCore core2 = cc.getCore("core2");
+ SolrCore lazy1 = cc.getCore("lazy1")) {
+
+ // Let's assert we did the right thing for implicit properties too.
+ CoreDescriptor desc = core1.getCoreDescriptor();
+ assertEquals("core1", desc.getName());
+
+ // This is too long and ugly to put in. Besides, it varies.
+ assertNotNull(desc.getInstanceDir());
+
+ // Prove we're ignoring this even though it's set in the properties file
+ assertFalse("InstanceDir should be ignored", desc.getInstanceDir().contains("totallybogus"));
+
+ assertEquals("core1", desc.getDataDir());
+ assertEquals("solrconfig-minimal.xml", desc.getConfigName());
+ assertEquals("schema-tiny.xml", desc.getSchemaName());
- // Let's assert we did the right thing for implicit properties too.
- CoreDescriptor desc = core1.getCoreDescriptor();
- assertEquals("core1", desc.getName());
-
- // This is too long and ugly to put in. Besides, it varies.
- assertNotNull(desc.getInstanceDir());
-
- // Prove we're ignoring this even though it's set in the properties file
- assertFalse("InstanceDir should be ignored", desc.getInstanceDir().contains("totallybogus"));
-
- assertEquals("core1", desc.getDataDir());
- assertEquals("solrconfig-minimal.xml", desc.getConfigName());
- assertEquals("schema-tiny.xml", desc.getSchemaName());
-
- SolrCore core2 = cc.getCore("core2");
- SolrCore lazy1 = cc.getCore("lazy1");
- TestLazyCores.checkInCores(cc, "core1", "core2", "lazy1");
- core1.close();
- core2.close();
- lazy1.close();
+ TestLazyCores.checkInCores(cc, "core1", "core2", "lazy1");
+ }
} finally {
cc.shutdown();
@@ -208,13 +207,10 @@ public class TestCoreDiscovery extends S
addCoreWithProps(makeCorePropFile("core2", false, false, "dataDir=core2"),
new File(alt, "core2" + File.separator + CorePropertiesLocator.PROPERTIES_FILENAME));
CoreContainer cc = init();
- try {
- SolrCore core1 = cc.getCore("core1");
- SolrCore core2 = cc.getCore("core2");
+ try (SolrCore core1 = cc.getCore("core1");
+ SolrCore core2 = cc.getCore("core2")) {
assertNotNull(core1);
assertNotNull(core2);
- core1.close();
- core2.close();
} finally {
cc.shutdown();
if (alt.exists()) FileUtils.deleteDirectory(alt);
@@ -231,13 +227,10 @@ public class TestCoreDiscovery extends S
addCoreWithProps(makeCorePropFile("core2", false, false),
new File(noCoreDir, "core2" + File.separator + CorePropertiesLocator.PROPERTIES_FILENAME));
CoreContainer cc = init();
- try {
- SolrCore core1 = cc.getCore("core1");
- SolrCore core2 = cc.getCore("core2");
+ try (SolrCore core1 = cc.getCore("core1");
+ SolrCore core2 = cc.getCore("core2")) {
assertNotNull(core1);
assertNotNull(core2);
- core1.close();
- core2.close();
} finally {
cc.shutdown();
if (noCoreDir.exists()) FileUtils.deleteDirectory(noCoreDir);
Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/core/TestJmxIntegration.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/core/TestJmxIntegration.java?rev=1581360&r1=1581359&r2=1581360&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/core/TestJmxIntegration.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/core/TestJmxIntegration.java Tue Mar 25 14:46:19 2014
@@ -16,19 +16,25 @@
*/
package org.apache.solr.core;
-import java.lang.management.ManagementFactory;
-import java.util.*;
-import javax.management.*;
-
-import org.apache.lucene.util.Constants;
import org.apache.solr.core.JmxMonitoredMap.SolrDynamicMBean;
import org.apache.solr.util.AbstractSolrTestCase;
-import org.junit.Assume;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Ignore;
import org.junit.Test;
+import javax.management.AttributeNotFoundException;
+import javax.management.MBeanAttributeInfo;
+import javax.management.MBeanInfo;
+import javax.management.MBeanServer;
+import javax.management.MalformedObjectNameException;
+import javax.management.ObjectInstance;
+import javax.management.ObjectName;
+import java.lang.management.ManagementFactory;
+import java.util.Hashtable;
+import java.util.Map;
+import java.util.Set;
+
/**
* Test for JMX Integration
*
@@ -156,8 +162,7 @@ public class TestJmxIntegration extends
Set<ObjectInstance> newBeans = mbeanServer.queryMBeans(null, null);
int newNumberOfObjects = 0;
int registrySize = 0;
- SolrCore core = h.getCoreContainer().getCore(coreName);
- try {
+ try (SolrCore core = h.getCoreContainer().getCore(coreName)) {
registrySize = core.getInfoRegistry().size();
for (ObjectInstance bean : newBeans) {
try {
@@ -168,8 +173,6 @@ public class TestJmxIntegration extends
// expected
}
}
- } finally {
- core.close();
}
log.info("After Reload: Size of infoRegistry: " + registrySize + " MBeans: " + newNumberOfObjects);
Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/core/TestSolrXmlPersistence.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/core/TestSolrXmlPersistence.java?rev=1581360&r1=1581359&r2=1581360&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/core/TestSolrXmlPersistence.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/core/TestSolrXmlPersistence.java Tue Mar 25 14:46:19 2014
@@ -410,15 +410,10 @@ public class TestSolrXmlPersistence exte
SolrXMLCoresLocator.NonPersistingLocator locator
= (SolrXMLCoresLocator.NonPersistingLocator) cores.getCoresLocator();
- String instDir = null;
- {
- SolrCore template = null;
- try {
- template = cores.getCore("collection1");
- instDir = template.getCoreDescriptor().getRawInstanceDir();
- } finally {
- if (null != template) template.close();
- }
+ String instDir;
+ try (SolrCore template = cores.getCore("collection1")) {
+ assertNotNull(template);
+ instDir = template.getCoreDescriptor().getRawInstanceDir();
}
final File instDirFile = new File(cores.getSolrHome(), instDir);
Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/handler/admin/CoreAdminHandlerTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/handler/admin/CoreAdminHandlerTest.java?rev=1581360&r1=1581359&r2=1581360&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/handler/admin/CoreAdminHandlerTest.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/handler/admin/CoreAdminHandlerTest.java Tue Mar 25 14:46:19 2014
@@ -144,15 +144,10 @@ public class CoreAdminHandlerTest extend
final CoreAdminHandler admin = new CoreAdminHandler(cores);
- String instDir = null;
- {
- SolrCore template = null;
- try {
- template = cores.getCore("collection1");
- instDir = template.getCoreDescriptor().getInstanceDir();
- } finally {
- if (null != template) template.close();
- }
+ String instDir;
+ try (SolrCore template = cores.getCore("collection1")) {
+ assertNotNull(template);
+ instDir = template.getCoreDescriptor().getInstanceDir();
}
final File instDirFile = new File(instDir);
Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/handler/admin/CoreAdminRequestStatusTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/handler/admin/CoreAdminRequestStatusTest.java?rev=1581360&r1=1581359&r2=1581360&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/handler/admin/CoreAdminRequestStatusTest.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/handler/admin/CoreAdminRequestStatusTest.java Tue Mar 25 14:46:19 2014
@@ -48,15 +48,10 @@ public class CoreAdminRequestStatusTest
final CoreAdminHandler admin = new CoreAdminHandler(cores);
- String instDir = null;
- {
- SolrCore template = null;
- try {
- template = cores.getCore("collection1");
- instDir = template.getCoreDescriptor().getInstanceDir();
- } finally {
- if (null != template) template.close();
- }
+ String instDir;
+ try (SolrCore template = cores.getCore("collection1")) {
+ assertNotNull(template);
+ instDir = template.getCoreDescriptor().getInstanceDir();
}
final File instDirFile = new File(instDir);
Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/handler/admin/CoreMergeIndexesAdminHandlerTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/handler/admin/CoreMergeIndexesAdminHandlerTest.java?rev=1581360&r1=1581359&r2=1581360&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/handler/admin/CoreMergeIndexesAdminHandlerTest.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/handler/admin/CoreMergeIndexesAdminHandlerTest.java Tue Mar 25 14:46:19 2014
@@ -34,7 +34,6 @@ import org.junit.rules.TestRule;
import java.io.File;
import java.io.IOException;
-import java.util.Map;
public class CoreMergeIndexesAdminHandlerTest extends SolrTestCaseJ4 {
@@ -80,8 +79,7 @@ public class CoreMergeIndexesAdminHandle
final CoreAdminHandler admin = new CoreAdminHandler(cores);
- SolrCore core = cores.getCore("collection1");
- try {
+ try (SolrCore core = cores.getCore("collection1")) {
FailingDirectoryFactory dirFactory = (FailingDirectoryFactory)core.getDirectoryFactory();
try {
@@ -102,8 +100,6 @@ public class CoreMergeIndexesAdminHandle
unIgnoreException(FAILING_MSG);
}
dirFactory.fail = false;
- } finally {
- core.close();
}
// cleanup
Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/schema/ChangedSchemaMergeTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/schema/ChangedSchemaMergeTest.java?rev=1581360&r1=1581359&r2=1581360&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/schema/ChangedSchemaMergeTest.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/schema/ChangedSchemaMergeTest.java Tue Mar 25 14:46:19 2014
@@ -75,8 +75,7 @@ public class ChangedSchemaMergeTest exte
public void testOptimizeDiffSchemas() throws Exception {
// load up a core (why not put it on disk?)
CoreContainer cc = init();
- SolrCore changed = cc.getCore("changed");
- try {
+ try (SolrCore changed = cc.getCore("changed")) {
// add some documents
addDoc(changed, "id", "1", "which", "15", "text", "some stuff with which");
@@ -98,7 +97,6 @@ public class ChangedSchemaMergeTest exte
changed.getUpdateHandler().commit(new CommitUpdateCommand(req, false));
changed.getUpdateHandler().commit(new CommitUpdateCommand(req, true));
} finally {
- if (changed != null) changed.close();
if (cc != null) cc.shutdown();
}
}
Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/schema/DocValuesMultiTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/schema/DocValuesMultiTest.java?rev=1581360&r1=1581359&r2=1581360&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/schema/DocValuesMultiTest.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/schema/DocValuesMultiTest.java Tue Mar 25 14:46:19 2014
@@ -17,8 +17,6 @@ package org.apache.solr.schema;
* limitations under the License.
*/
-import java.io.IOException;
-
import org.apache.lucene.index.AtomicReader;
import org.apache.lucene.index.FieldInfo.DocValuesType;
import org.apache.lucene.index.FieldInfos;
@@ -30,6 +28,8 @@ import org.apache.solr.search.SolrIndexS
import org.apache.solr.util.RefCounted;
import org.junit.BeforeClass;
+import java.io.IOException;
+
@SuppressCodecs({"Lucene40", "Lucene41"})
public class DocValuesMultiTest extends SolrTestCaseJ4 {
@@ -46,8 +46,7 @@ public class DocValuesMultiTest extends
public void testDocValues() throws IOException {
assertU(adoc("id", "1", "floatdv", "4.5", "intdv", "-1", "intdv", "3", "stringdv", "value1", "stringdv", "value2"));
assertU(commit());
- SolrCore core = h.getCoreInc();
- try {
+ try (SolrCore core = h.getCoreInc()) {
final RefCounted<SolrIndexSearcher> searcherRef = core.openNewSearcher(true, true);
final SolrIndexSearcher searcher = searcherRef.get();
try {
@@ -66,8 +65,6 @@ public class DocValuesMultiTest extends
} finally {
searcherRef.decref();
}
- } finally {
- core.close();
}
}
Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/schema/DocValuesTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/schema/DocValuesTest.java?rev=1581360&r1=1581359&r2=1581360&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/schema/DocValuesTest.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/schema/DocValuesTest.java Tue Mar 25 14:46:19 2014
@@ -17,8 +17,6 @@ package org.apache.solr.schema;
* limitations under the License.
*/
-import java.io.IOException;
-
import org.apache.lucene.index.AtomicReader;
import org.apache.lucene.index.FieldInfo.DocValuesType;
import org.apache.lucene.index.FieldInfos;
@@ -29,6 +27,8 @@ import org.apache.solr.search.SolrIndexS
import org.apache.solr.util.RefCounted;
import org.junit.BeforeClass;
+import java.io.IOException;
+
public class DocValuesTest extends SolrTestCaseJ4 {
@BeforeClass
@@ -44,8 +44,7 @@ public class DocValuesTest extends SolrT
public void testDocValues() throws IOException {
assertU(adoc("id", "1"));
assertU(commit());
- SolrCore core = h.getCoreInc();
- try {
+ try (SolrCore core = h.getCoreInc()) {
final RefCounted<SolrIndexSearcher> searcherRef = core.openNewSearcher(true, true);
final SolrIndexSearcher searcher = searcherRef.get();
try {
@@ -84,8 +83,6 @@ public class DocValuesTest extends SolrT
} finally {
searcherRef.decref();
}
- } finally {
- core.close();
}
}
Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/schema/ModifyConfFileTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/schema/ModifyConfFileTest.java?rev=1581360&r1=1581359&r2=1581360&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/schema/ModifyConfFileTest.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/schema/ModifyConfFileTest.java Tue Mar 25 14:46:19 2014
@@ -67,10 +67,9 @@ public class ModifyConfFileTest extends
public void testConfigWrite() throws Exception {
final CoreContainer cc = init();
- try {
+ try (SolrCore core = cc.getCore("core1")) {
//final CoreAdminHandler admin = new CoreAdminHandler(cc);
- SolrCore core = cc.getCore("core1");
SolrQueryResponse rsp = new SolrQueryResponse();
SolrRequestHandler handler = core.getRequestHandler("/admin/fileedit");
@@ -147,7 +146,6 @@ public class ModifyConfFileTest extends
assertTrue("Velocity should be a directory", (boolean)velocity.get("directory"));
- core.close();
} finally {
cc.shutdown();
if (solrHomeDirectory.exists()) {
Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/update/SolrCmdDistributorTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/update/SolrCmdDistributorTest.java?rev=1581360&r1=1581359&r2=1581360&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/update/SolrCmdDistributorTest.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/update/SolrCmdDistributorTest.java Tue Mar 25 14:46:19 2014
@@ -17,15 +17,6 @@ package org.apache.solr.update;
* limitations under the License.
*/
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.concurrent.atomic.AtomicInteger;
-
-import javax.xml.parsers.ParserConfigurationException;
-
import org.apache.lucene.index.LogDocMergePolicy;
import org.apache.solr.BaseDistributedSearchTestCase;
import org.apache.solr.client.solrj.SolrQuery;
@@ -56,6 +47,14 @@ import org.apache.solr.update.processor.
import org.junit.BeforeClass;
import org.xml.sax.SAXException;
+import javax.xml.parsers.ParserConfigurationException;
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.concurrent.atomic.AtomicInteger;
+
public class SolrCmdDistributorTest extends BaseDistributedSearchTestCase {
private AtomicInteger id = new AtomicInteger();
@@ -279,23 +278,26 @@ public class SolrCmdDistributorTest exte
final AtomicInteger commits = new AtomicInteger();
for(JettySolrRunner jetty : jettys) {
CoreContainer cores = ((SolrDispatchFilter) jetty.getDispatchFilter().getFilter()).getCores();
- SolrCore core = cores.getCore("collection1");
- try {
+ try (SolrCore core = cores.getCore("collection1")) {
core.getUpdateHandler().registerCommitCallback(new SolrEventListener() {
@Override
- public void init(NamedList args) {}
+ public void init(NamedList args) {
+ }
+
@Override
- public void postSoftCommit() {}
+ public void postSoftCommit() {
+ }
+
@Override
public void postCommit() {
commits.incrementAndGet();
}
+
@Override
public void newSearcher(SolrIndexSearcher newSearcher,
- SolrIndexSearcher currentSearcher) {}
+ SolrIndexSearcher currentSearcher) {
+ }
});
- } finally {
- core.close();
}
}
params = new ModifiableSolrParams();
Modified: lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/MergeIndexesEmbeddedTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/MergeIndexesEmbeddedTest.java?rev=1581360&r1=1581359&r2=1581360&view=diff
==============================================================================
--- lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/MergeIndexesEmbeddedTest.java (original)
+++ lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/MergeIndexesEmbeddedTest.java Tue Mar 25 14:46:19 2014
@@ -58,9 +58,8 @@ public class MergeIndexesEmbeddedTest ex
@Override
protected String getIndexDirCore1() {
- SolrCore core1 = cores.getCore("core1");
- String indexDir = core1.getIndexDir();
- core1.close();
- return indexDir;
+ try (SolrCore core1 = cores.getCore("core1")) {
+ return core1.getIndexDir();
+ }
}
}
Modified: lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/request/TestCoreAdmin.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/request/TestCoreAdmin.java?rev=1581360&r1=1581359&r2=1581360&view=diff
==============================================================================
--- lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/request/TestCoreAdmin.java (original)
+++ lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/request/TestCoreAdmin.java Tue Mar 25 14:46:19 2014
@@ -85,15 +85,9 @@ public class TestCoreAdmin extends Abstr
CoreAdminResponse response = req.process(server);
assertThat((String) response.getResponse().get("core"), is("corewithconfigset"));
- SolrCore core = null;
- try {
- core = cores.getCore("corewithconfigset");
+ try (SolrCore core = cores.getCore("corewithconfigset")) {
assertThat(core, is(notNullValue()));
}
- finally {
- if (core != null)
- core.close();
- }
}
@@ -135,23 +129,19 @@ public class TestCoreAdmin extends Abstr
// Show that the newly-created core has values for load on startup and transient different than defaults due to the
// above.
+ File logDir;
+ try (SolrCore coreProveIt = cores.getCore("collection1");
+ SolrCore core = cores.getCore("newcore")) {
- SolrCore coreProveIt = cores.getCore("collection1");
- SolrCore core = cores.getCore("newcore");
-
- assertTrue(core.getCoreDescriptor().isTransient());
- assertFalse(coreProveIt.getCoreDescriptor().isTransient());
+ assertTrue(core.getCoreDescriptor().isTransient());
+ assertFalse(coreProveIt.getCoreDescriptor().isTransient());
- assertFalse(core.getCoreDescriptor().isLoadOnStartup());
- assertTrue(coreProveIt.getCoreDescriptor().isLoadOnStartup());
+ assertFalse(core.getCoreDescriptor().isLoadOnStartup());
+ assertTrue(coreProveIt.getCoreDescriptor().isLoadOnStartup());
- File logDir;
- try {
logDir = new File(core.getUpdateHandler().getUpdateLog().getLogDir());
- } finally {
- coreProveIt.close();
- core.close();
}
+
assertEquals(new File(dataDir, "ulog" + File.separator + "tlog").getAbsolutePath(), logDir.getAbsolutePath());
server.shutdown();
Modified: lucene/dev/trunk/solr/test-framework/src/java/org/apache/solr/cloud/ChaosMonkey.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/test-framework/src/java/org/apache/solr/cloud/ChaosMonkey.java?rev=1581360&r1=1581359&r2=1581360&view=diff
==============================================================================
--- lucene/dev/trunk/solr/test-framework/src/java/org/apache/solr/cloud/ChaosMonkey.java (original)
+++ lucene/dev/trunk/solr/test-framework/src/java/org/apache/solr/cloud/ChaosMonkey.java Tue Mar 25 14:46:19 2014
@@ -17,15 +17,6 @@ package org.apache.solr.cloud;
* limitations under the License.
*/
-import java.net.InetSocketAddress;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.Random;
-import java.util.concurrent.atomic.AtomicInteger;
-
-import javax.servlet.Filter;
-
import org.apache.lucene.util.LuceneTestCase;
import org.apache.solr.client.solrj.SolrServer;
import org.apache.solr.client.solrj.embedded.JettySolrRunner;
@@ -43,6 +34,14 @@ import org.eclipse.jetty.servlet.FilterH
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import javax.servlet.Filter;
+import java.net.InetSocketAddress;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Random;
+import java.util.concurrent.atomic.AtomicInteger;
+
/**
* The monkey can stop random or specific jetties used with SolrCloud.
*
@@ -381,19 +380,17 @@ public class ChaosMonkey {
monkeyLog("selected jetty not running correctly - skip");
return null;
}
- SolrCore core = cores.getCore(leader.getStr(ZkStateReader.CORE_NAME_PROP));
- if (core == null) {
- monkeyLog("selected jetty not running correctly - skip");
- return null;
- }
+
// cluster state can be stale - also go by our 'near real-time' is leader prop
boolean rtIsLeader;
- try {
+ try (SolrCore core = cores.getCore(leader.getStr(ZkStateReader.CORE_NAME_PROP))) {
+ if (core == null) {
+ monkeyLog("selected jetty not running correctly - skip");
+ return null;
+ }
rtIsLeader = core.getCoreDescriptor().getCloudDescriptor().isLeader();
- } finally {
- core.close();
}
-
+
boolean isLeader = leader.getStr(ZkStateReader.NODE_NAME_PROP).equals(jetties.get(index).nodeName)
|| rtIsLeader;
if (!aggressivelyKillLeaders && isLeader) {
Modified: lucene/dev/trunk/solr/test-framework/src/java/org/apache/solr/util/TestHarness.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/test-framework/src/java/org/apache/solr/util/TestHarness.java?rev=1581360&r1=1581359&r2=1581360&view=diff
==============================================================================
--- lucene/dev/trunk/solr/test-framework/src/java/org/apache/solr/util/TestHarness.java (original)
+++ lucene/dev/trunk/solr/test-framework/src/java/org/apache/solr/util/TestHarness.java Tue Mar 25 14:46:19 2014
@@ -232,22 +232,19 @@ public class TestHarness extends BaseTes
* @return The XML response to the update
*/
public String update(String xml) {
- SolrCore core = getCoreInc();
- DirectSolrConnection connection = new DirectSolrConnection(core);
- SolrRequestHandler handler = core.getRequestHandler("/update");
- // prefer the handler mapped to /update, but use our generic backup handler
- // if that lookup fails
- if (handler == null) {
- handler = updater;
- }
- try {
+ try (SolrCore core = getCoreInc()) {
+ DirectSolrConnection connection = new DirectSolrConnection(core);
+ SolrRequestHandler handler = core.getRequestHandler("/update");
+ // prefer the handler mapped to /update, but use our generic backup handler
+ // if that lookup fails
+ if (handler == null) {
+ handler = updater;
+ }
return connection.request(handler, null, xml);
} catch (SolrException e) {
throw (SolrException)e;
} catch (Exception e) {
throw new SolrException(SolrException.ErrorCode.BAD_REQUEST, e);
- } finally {
- core.close();
}
}
@@ -292,8 +289,7 @@ public class TestHarness extends BaseTes
* @see LocalSolrQueryRequest
*/
public String query(String handler, SolrQueryRequest req) throws Exception {
- SolrCore core = getCoreInc();
- try {
+ try (SolrCore core = getCoreInc()) {
SolrQueryResponse rsp = new SolrQueryResponse();
SolrRequestInfo.setRequestInfo(new SolrRequestInfo(req, rsp));
core.execute(core.getRequestHandler(handler),req,rsp);
@@ -310,23 +306,19 @@ public class TestHarness extends BaseTes
} finally {
req.close();
SolrRequestInfo.clearRequestInfo();
- core.close();
}
}
/** It is the users responsibility to close the request object when done with it.
* This method does not set/clear SolrRequestInfo */
public SolrQueryResponse queryAndResponse(String handler, SolrQueryRequest req) throws Exception {
- SolrCore core = getCoreInc();
- try {
+ try (SolrCore core = getCoreInc()) {
SolrQueryResponse rsp = new SolrQueryResponse();
- core.execute(core.getRequestHandler(handler),req,rsp);
+ core.execute(core.getRequestHandler(handler), req, rsp);
if (rsp.getException() != null) {
throw rsp.getException();
}
return rsp;
- } finally {
- core.close();
}
}