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/09/06 15:49:35 UTC
[lucene-solr] branch reference_impl_dev updated: @760 Change delete
index and data dirs to happen with delete instance dir.
This is an automated email from the ASF dual-hosted git repository.
markrmiller pushed a commit to branch reference_impl_dev
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git
The following commit(s) were added to refs/heads/reference_impl_dev by this push:
new 7b07a0c @760 Change delete index and data dirs to happen with delete instance dir.
7b07a0c is described below
commit 7b07a0ccc7ca725cf62ae85bdc14444289df24ea
Author: markrmiller@gmail.com <ma...@gmail.com>
AuthorDate: Sun Sep 6 10:48:41 2020 -0500
@760 Change delete index and data dirs to happen with delete instance dir.
---
.../src/java/org/apache/solr/core/SolrCore.java | 60 +++++++++++++---------
1 file changed, 36 insertions(+), 24 deletions(-)
diff --git a/solr/core/src/java/org/apache/solr/core/SolrCore.java b/solr/core/src/java/org/apache/solr/core/SolrCore.java
index e05c4e6..3b24da1 100644
--- a/solr/core/src/java/org/apache/solr/core/SolrCore.java
+++ b/solr/core/src/java/org/apache/solr/core/SolrCore.java
@@ -3066,25 +3066,10 @@ public final class SolrCore implements SolrInfoBean, Closeable {
}
public void unloadOnClose(final CoreDescriptor desc, boolean deleteIndexDir, boolean deleteDataDir, boolean deleteInstanceDir) {
- if (deleteIndexDir) {
- try {
- directoryFactory.remove(getIndexDir());
- } catch (Exception e) {
- ParWork.propegateInterrupt(e);
- SolrException.log(log, "Failed to flag index dir for removal for core:" + name + " dir:" + getIndexDir());
- }
- }
- if (deleteDataDir) {
- try {
- directoryFactory.remove(getDataDir(), true);
- } catch (Exception e) {
- ParWork.propegateInterrupt(e);
- SolrException.log(log, "Failed to flag data dir for removal for core:" + name + " dir:" + getDataDir());
- }
- }
- if (deleteInstanceDir) {
- addCloseHook(new SolrCoreDeleteCloseHook(desc));
+ if (deleteIndexDir || deleteDataDir || deleteInstanceDir) {
+ addCloseHook(new SolrCoreDeleteCloseHook(desc, deleteDataDir, deleteIndexDir, deleteInstanceDir));
}
+
}
public static void deleteUnloadedCore(CoreDescriptor cd, boolean deleteDataDir, boolean deleteInstanceDir) {
@@ -3332,9 +3317,16 @@ public final class SolrCore implements SolrInfoBean, Closeable {
private static class SolrCoreDeleteCloseHook extends CloseHook {
private final CoreDescriptor desc;
+ private final boolean deleteDataDir;
+ private final boolean deteIndexDir;
+ private final boolean deleteInstanecDir;
- public SolrCoreDeleteCloseHook(CoreDescriptor desc) {
+ public SolrCoreDeleteCloseHook(CoreDescriptor desc, boolean deleteDataDir, boolean deleteIndexDir, boolean deleteInstanceDir) {
+ super();
this.desc = desc;
+ this.deleteDataDir = deleteDataDir;
+ this.deteIndexDir = deleteIndexDir;
+ this.deleteInstanecDir = deleteInstanceDir;
}
@Override
@@ -3345,11 +3337,31 @@ public final class SolrCore implements SolrInfoBean, Closeable {
@Override
public void postClose(SolrCore core) {
if (desc != null) {
- try {
- FileUtils.deleteDirectory(desc.getInstanceDir().toFile());
- } catch (IOException e) {
- SolrException.log(log, "Failed to delete instance dir for core:"
- + core.getName() + " dir:" + desc.getInstanceDir());
+
+ if (deteIndexDir) {
+ try {
+ core.getDirectoryFactory().remove(core.getIndexDir(), true);
+ } catch (Exception e) {
+ ParWork.propegateInterrupt(e);
+ SolrException.log(log, "Failed to flag index dir for removal for core:" + core.getName() + " dir:" + core.getIndexDir());
+ }
+ }
+
+ if (deleteDataDir) {
+ try {
+ core.getDirectoryFactory().remove(core.getDataDir(), true);
+ } catch (Exception e) {
+ ParWork.propegateInterrupt(e);
+ SolrException.log(log, "Failed to flag data dir for removal for core:" + core.getName() + " dir:" + core.getDataDir());
+ }
+ }
+
+ if (deleteInstanecDir) {
+ try {
+ FileUtils.deleteDirectory(desc.getInstanceDir().toFile());
+ } catch (IOException e) {
+ SolrException.log(log, "Failed to delete instance dir for core:" + core.getName() + " dir:" + desc.getInstanceDir());
+ }
}
}
}