Skip to content
Snippets Groups Projects
Commit 25a1b2ec authored by jakubs's avatar jakubs
Browse files

BIS-21 cleanup the recovery files

SVN: 25242
parent a84fd17f
No related branches found
No related tags found
No related merge requests found
...@@ -486,12 +486,15 @@ public abstract class AbstractOmniscientTopLevelDataSetRegistrator<T extends Dat ...@@ -486,12 +486,15 @@ public abstract class AbstractOmniscientTopLevelDataSetRegistrator<T extends Dat
// TODO: real cleanup action // TODO: real cleanup action
final File recoveryFile = state.getGlobalState().getStorageRecoveryManager().getRecoveryFileFromMarker(recoveryMarkerFile);
IDelegatedActionWithResult<Boolean> recoveryMarkerFileCleanupAction = IDelegatedActionWithResult<Boolean> recoveryMarkerFileCleanupAction =
new IDelegatedActionWithResult<Boolean>() new IDelegatedActionWithResult<Boolean>()
{ {
public Boolean execute(boolean didOperationSucceed) public Boolean execute(boolean didOperationSucceed)
{ {
recoveryMarkerFile.delete(); recoveryMarkerFile.delete();
recoveryFile.delete();
return true; return true;
} }
}; };
......
...@@ -64,13 +64,19 @@ public class DataSetStorageRecoveryManager implements IDataSetStorageRecoveryMan ...@@ -64,13 +64,19 @@ public class DataSetStorageRecoveryManager implements IDataSetStorageRecoveryMan
return new File(dropboxRecoveryStateDir, incomingFileName + PRECOMMIT_SERIALIZED); 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") @SuppressWarnings("unchecked")
public <T extends DataSetInformation> DataSetStoragePrecommitRecoveryState<T> extractPrecommittedCheckpoint( public <T extends DataSetInformation> DataSetStoragePrecommitRecoveryState<T> extractPrecommittedCheckpoint(
File markerFile) File markerFile)
{ {
// trim is necessary as it reads the \n at the end of the file File recoveryFile = getRecoveryFileFromMarker(markerFile);
String recoveryFilePath = FileUtilities.loadToString(markerFile).trim(); return FileUtilities.loadToObject(recoveryFile,
return FileUtilities.loadToObject(new File(recoveryFilePath),
DataSetStoragePrecommitRecoveryState.class); DataSetStoragePrecommitRecoveryState.class);
} }
......
...@@ -50,9 +50,17 @@ public interface IDataSetStorageRecoveryManager ...@@ -50,9 +50,17 @@ public interface IDataSetStorageRecoveryManager
<T extends DataSetInformation> DataSetStoragePrecommitRecoveryState<T> extractPrecommittedCheckpoint( <T extends DataSetInformation> DataSetStoragePrecommitRecoveryState<T> extractPrecommittedCheckpoint(
File markerFile); File markerFile);
/**
* Extracts the recovery file from the marker file
*/
File getRecoveryFileFromMarker(File markerFile);
// Simple helper methods // Simple helper methods
boolean canRecoverFromError(Throwable ex); boolean canRecoverFromError(Throwable ex);
/**
* checks whether the file is a proper recovery marker file
*/
boolean isRecoveryFile(File file); boolean isRecoveryFile(File file);
void setDropboxRecoveryStateDir(File dropboxRecoveryStateDir); void setDropboxRecoveryStateDir(File dropboxRecoveryStateDir);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment