You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by tf...@apache.org on 2017/05/19 00:13:30 UTC

[09/50] [abbrv] lucene-solr:jira/solr-10233: SOLR-10414: RecoveryStrategy is now a Runnable instead of a Thread

SOLR-10414: RecoveryStrategy is now a Runnable instead of a Thread


Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/c9abe7db
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/c9abe7db
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/c9abe7db

Branch: refs/heads/jira/solr-10233
Commit: c9abe7db23578545eaa67414778b501b2b115b8a
Parents: 942a085
Author: Tomas Fernandez Lobbe <tf...@apache.org>
Authored: Tue May 16 17:03:10 2017 -0700
Committer: Tomas Fernandez Lobbe <tf...@apache.org>
Committed: Tue May 16 17:03:10 2017 -0700

----------------------------------------------------------------------
 solr/CHANGES.txt                                                | 2 ++
 solr/core/src/java/org/apache/solr/cloud/RecoveryStrategy.java  | 5 ++---
 .../src/java/org/apache/solr/update/DefaultSolrCoreState.java   | 4 ++--
 3 files changed, 6 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c9abe7db/solr/CHANGES.txt
----------------------------------------------------------------------
diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index 85810ab4..acc29f4 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -155,6 +155,8 @@ Other Changes
 * SOLR-10584: We'll now always throw an exception if defaultOperator is found in schema. This config has
   been deprecated since 3.6, and enforced for new configs since 6.6 (janhoy)
 
+* SOLR-10414: RecoveryStrategy is now a Runnable instead of a Thread. (Tomás Fernández Löbbe)
+
 ==================  6.7.0 ==================
 
 Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this release.

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c9abe7db/solr/core/src/java/org/apache/solr/cloud/RecoveryStrategy.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/cloud/RecoveryStrategy.java b/solr/core/src/java/org/apache/solr/cloud/RecoveryStrategy.java
index 496d082..7599b05 100644
--- a/solr/core/src/java/org/apache/solr/cloud/RecoveryStrategy.java
+++ b/solr/core/src/java/org/apache/solr/cloud/RecoveryStrategy.java
@@ -74,7 +74,7 @@ import org.slf4j.LoggerFactory;
  * between versions in terms of API or back compat behaviour.
  * @lucene.experimental
  */
-public class RecoveryStrategy extends Thread implements Closeable {
+public class RecoveryStrategy implements Runnable, Closeable {
 
   public static class Builder implements NamedListInitializedPlugin {
     private NamedList args;
@@ -124,7 +124,6 @@ public class RecoveryStrategy extends Thread implements Closeable {
     this.cc = cc;
     this.coreName = cd.getName();
     this.recoveryListener = recoveryListener;
-    setName("RecoveryThread-"+this.coreName);
     zkController = cc.getZkController();
     zkStateReader = zkController.getZkStateReader();
     baseUrl = zkController.getBaseUrl();
@@ -370,7 +369,7 @@ public class RecoveryStrategy extends Thread implements Closeable {
     }
 
     Future<RecoveryInfo> replayFuture = null;
-    while (!successfulRecovery && !isInterrupted() && !isClosed()) { // don't use interruption or it will close channels though
+    while (!successfulRecovery && !Thread.currentThread().isInterrupted() && !isClosed()) { // don't use interruption or it will close channels though
       try {
         CloudDescriptor cloudDesc = core.getCoreDescriptor().getCloudDescriptor();
         ZkNodeProps leaderprops = zkStateReader.getLeaderRetry(

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c9abe7db/solr/core/src/java/org/apache/solr/update/DefaultSolrCoreState.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/update/DefaultSolrCoreState.java b/solr/core/src/java/org/apache/solr/update/DefaultSolrCoreState.java
index bc2afa8..e38c28c 100644
--- a/solr/core/src/java/org/apache/solr/update/DefaultSolrCoreState.java
+++ b/solr/core/src/java/org/apache/solr/update/DefaultSolrCoreState.java
@@ -278,7 +278,7 @@ public final class DefaultSolrCoreState extends SolrCoreState implements Recover
   @Override
   public void doRecovery(CoreContainer cc, CoreDescriptor cd) {
     
-    Thread thread = new Thread() {
+    Runnable recoveryTask = new Runnable() {
       @Override
       public void run() {
         MDCLoggingContext.setCoreDescriptor(cc, cd);
@@ -355,7 +355,7 @@ public final class DefaultSolrCoreState extends SolrCoreState implements Recover
       // The recovery executor is not interrupted on shutdown.
       //
       // avoid deadlock: we can't use the recovery executor here
-      cc.getUpdateShardHandler().getUpdateExecutor().submit(thread);
+      cc.getUpdateShardHandler().getUpdateExecutor().submit(recoveryTask);
     } catch (RejectedExecutionException e) {
       // fine, we are shutting down
     }