From 25a1b2ec929dd30612931eea19b3a6d4537e5b55 Mon Sep 17 00:00:00 2001 From: jakubs <jakubs> Date: Fri, 11 May 2012 15:39:39 +0000 Subject: [PATCH] BIS-21 cleanup the recovery files SVN: 25242 --- ...AbstractOmniscientTopLevelDataSetRegistrator.java | 3 +++ .../registrator/DataSetStorageRecoveryManager.java | 12 +++++++++--- .../registrator/IDataSetStorageRecoveryManager.java | 8 ++++++++ 3 files changed, 20 insertions(+), 3 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 bc314511fd1..3d903f6835a 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 @@ -486,12 +486,15 @@ public abstract class AbstractOmniscientTopLevelDataSetRegistrator<T extends Dat // TODO: real cleanup action + final File recoveryFile = state.getGlobalState().getStorageRecoveryManager().getRecoveryFileFromMarker(recoveryMarkerFile); + IDelegatedActionWithResult<Boolean> recoveryMarkerFileCleanupAction = new IDelegatedActionWithResult<Boolean>() { public Boolean execute(boolean didOperationSucceed) { recoveryMarkerFile.delete(); + recoveryFile.delete(); return true; } }; diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/DataSetStorageRecoveryManager.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/DataSetStorageRecoveryManager.java index 75d4bf32c82..245dd7dd035 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/DataSetStorageRecoveryManager.java +++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/DataSetStorageRecoveryManager.java @@ -64,13 +64,19 @@ public class DataSetStorageRecoveryManager implements IDataSetStorageRecoveryMan return new File(dropboxRecoveryStateDir, incomingFileName + PRECOMMIT_SERIALIZED); } + public File getRecoveryFileFromMarker(File markerFile) + { + // trim is necessary as it reads the \n at the end of the file + String recoveryFilePath = FileUtilities.loadToString(markerFile).trim(); + return new File(recoveryFilePath); + } + @SuppressWarnings("unchecked") public <T extends DataSetInformation> DataSetStoragePrecommitRecoveryState<T> extractPrecommittedCheckpoint( File markerFile) { - // trim is necessary as it reads the \n at the end of the file - String recoveryFilePath = FileUtilities.loadToString(markerFile).trim(); - return FileUtilities.loadToObject(new File(recoveryFilePath), + File recoveryFile = getRecoveryFileFromMarker(markerFile); + return FileUtilities.loadToObject(recoveryFile, DataSetStoragePrecommitRecoveryState.class); } diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/IDataSetStorageRecoveryManager.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/IDataSetStorageRecoveryManager.java index 9b8d6836003..44d2fe43185 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/IDataSetStorageRecoveryManager.java +++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/IDataSetStorageRecoveryManager.java @@ -50,9 +50,17 @@ public interface IDataSetStorageRecoveryManager <T extends DataSetInformation> DataSetStoragePrecommitRecoveryState<T> extractPrecommittedCheckpoint( File markerFile); + /** + * Extracts the recovery file from the marker file + */ + File getRecoveryFileFromMarker(File markerFile); + // Simple helper methods boolean canRecoverFromError(Throwable ex); + /** + * checks whether the file is a proper recovery marker file + */ boolean isRecoveryFile(File file); void setDropboxRecoveryStateDir(File dropboxRecoveryStateDir); -- GitLab