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) {