MCPcopy Create free account
hub / github.com/apache/solr / unloadOnClose

Method unloadOnClose

solr/core/src/java/org/apache/solr/core/SolrCore.java:3293–3349  ·  view source on GitHub ↗
(
      final CoreDescriptor desc,
      boolean deleteIndexDir,
      boolean deleteDataDir,
      boolean deleteInstanceDir)

Source from the content-addressed store, hash-verified

3291 }
3292 if (deleteInstanceDir) {
3293 addCloseHook(
3294 new CloseHook() {
3295 @Override
3296 public void postClose(SolrCore core) {
3297 if (desc != null) {
3298 try {
3299 PathUtils.deleteDirectory(desc.getInstanceDir());
3300 } catch (IOException e) {
3301 log.error(
3302 "Failed to delete instance dir for core: {} dir: {}",
3303 core.getName(),
3304 desc.getInstanceDir(),
3305 e);
3306 }
3307 }
3308 }
3309 });
3310 }
3311 }
3312
3313 public static void deleteUnloadedCore(
3314 CoreDescriptor cd, boolean deleteDataDir, boolean deleteInstanceDir) {
3315 if (deleteDataDir) {
3316 Path instanceDir = cd.getInstanceDir();
3317 Path dataDir = instanceDir.resolve(cd.getDataDir());
3318 try {
3319 PathUtils.deleteDirectory(dataDir);
3320 } catch (IOException e) {
3321 log.error(
3322 "Failed to delete data dir for unloaded core: {} dir: {}",
3323 cd.getName(),
3324 dataDir.toAbsolutePath(),
3325 e);
3326 }
3327 String ulogDir = cd.getUlogDir();
3328 if (ulogDir != null) {
3329 Path ulogDirPath = instanceDir.resolve(ulogDir);
3330 if (!ulogDirPath.startsWith(dataDir)
3331 && (!deleteInstanceDir || !ulogDirPath.startsWith(instanceDir))) {
3332 // external ulogDir, we have to remove it explicitly
3333 try {
3334 Path tlogPath =
3335 UpdateLog.ulogToTlogDir(cd.getName(), ulogDirPath, instanceDir, dataDir.toString());
3336 PathUtils.deleteDirectory(tlogPath);
3337 } catch (IOException e) {
3338 log.error(
3339 "Failed to delete external ulog dir for core: {} ulogDir: {}",
3340 cd.getName(),
3341 ulogDirPath,
3342 e);
3343 }
3344 }
3345 }
3346 }
3347 if (deleteInstanceDir) {
3348 try {
3349 PathUtils.deleteDirectory(cd.getInstanceDir());
3350 } catch (IOException e) {

Callers 1

unloadWithoutCoreOpMethod · 0.95

Calls 8

getIndexDirMethod · 0.95
getDataDirMethod · 0.95
getUpdateHandlerMethod · 0.95
getUpdateLogMethod · 0.95
getTlogDirMethod · 0.95
addCloseHookMethod · 0.95
removeMethod · 0.65
errorMethod · 0.45

Tested by

no test coverage detected