From 3c49b05694cdd08b8ba6120b2b716ed6800d6e74 Mon Sep 17 00:00:00 2001 From: cramakri <cramakri> Date: Fri, 20 Jan 2012 09:15:40 +0000 Subject: [PATCH] LMS-2739 Better logic for deleting the generated prestaging folders. SVN: 24240 --- ...stractOmniscientTopLevelDataSetRegistrator.java | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/AbstractOmniscientTopLevelDataSetRegistrator.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/AbstractOmniscientTopLevelDataSetRegistrator.java index d3bf4678ee6..0b63752a887 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/AbstractOmniscientTopLevelDataSetRegistrator.java +++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/AbstractOmniscientTopLevelDataSetRegistrator.java @@ -226,17 +226,23 @@ public abstract class AbstractOmniscientTopLevelDataSetRegistrator<T extends Dat @Override public Boolean execute(boolean didOperationSucceed) { - File fileToDelete = null; + boolean deleteSucceeded = false; if (didOperationSucceed) { // Registration succeeded -- no need to keep the original file around - fileToDelete = originalInboxFile; + deleteSucceeded = FileUtilities.deleteRecursively(originalInboxFile); + // If the parent of the hardlink copy file, which we generated, is empty, delete it + // too + File hardlinkCopyParent = hardlinkCopyFile.getParentFile(); + if (hardlinkCopyParent.list().length < 1) + { + hardlinkCopyParent.delete(); + } } else { // Registration failed -- remove the copy, leaving the original. - fileToDelete = hardlinkCopyFile; + deleteSucceeded = FileUtilities.deleteRecursively(hardlinkCopyFile); } - boolean deleteSucceeded = FileUtilities.deleteRecursively(fileToDelete); boolean wrappedActionResult = wrappedAction.execute(didOperationSucceed); return deleteSucceeded && wrappedActionResult; -- GitLab