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 2020/08/22 18:42:24 UTC

[lucene-solr] 05/22: @585 Tweak RestoreCore, only done with dir if failed.

This is an automated email from the ASF dual-hosted git repository.

markrmiller pushed a commit to branch reference_impl
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git

commit 8b9cabafd48dc9ed805467ceb45541b2b50aeac2
Author: markrmiller@gmail.com <ma...@gmail.com>
AuthorDate: Thu Aug 20 12:49:21 2020 -0500

    @585 Tweak RestoreCore, only done with dir if failed.
---
 solr/core/src/java/org/apache/solr/handler/RestoreCore.java | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/solr/core/src/java/org/apache/solr/handler/RestoreCore.java b/solr/core/src/java/org/apache/solr/handler/RestoreCore.java
index 54248e5..20ef0ea 100644
--- a/solr/core/src/java/org/apache/solr/handler/RestoreCore.java
+++ b/solr/core/src/java/org/apache/solr/handler/RestoreCore.java
@@ -67,6 +67,7 @@ public class RestoreCore implements Callable<Boolean> {
     String indexDirPath = core.getIndexDir();
     Directory restoreIndexDir = null;
     Directory indexDir = null;
+    boolean success = false;
     try {
 
       restoreIndexDir = core.getDirectoryFactory().get(restoreIndexPath,
@@ -106,7 +107,6 @@ public class RestoreCore implements Callable<Boolean> {
       log.debug("Switching directories");
       core.modifyIndexProps(restoreIndexName);
 
-      boolean success;
       try {
         core.getUpdateHandler().newIndexWriter(false);
         openNewSearcher();
@@ -127,8 +127,6 @@ public class RestoreCore implements Callable<Boolean> {
           }
         }
 
-        core.getDirectoryFactory().doneWithDirectory(restoreIndexDir);
-        core.getDirectoryFactory().remove(restoreIndexDir);
         core.getUpdateHandler().newIndexWriter(false);
         openNewSearcher();
         throw new SolrException(SolrException.ErrorCode.UNKNOWN, "Exception while restoring the backup index", e);
@@ -141,7 +139,9 @@ public class RestoreCore implements Callable<Boolean> {
       return true;
     } finally {
       if (restoreIndexDir != null) {
-        core.getDirectoryFactory().doneWithDirectory(restoreIndexDir);
+        if (!success) {
+          core.getDirectoryFactory().doneWithDirectory(restoreIndexDir);
+        }
         core.getDirectoryFactory().release(restoreIndexDir);
       }
       if (indexDir != null) {