From 0d85878c9d2a574a6f093bbf74eb612cfd59505a Mon Sep 17 00:00:00 2001 From: jakubs <jakubs> Date: Wed, 30 May 2012 13:07:11 +0000 Subject: [PATCH] SP-45, BIS-21 small refactoring SVN: 25401 --- .../DataSetStorageAlgorithmRunner.java | 51 ++++++++++--------- .../v2/JythonTopLevelDataSetHandlerV2.java | 11 +++- 2 files changed, 37 insertions(+), 25 deletions(-) diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/DataSetStorageAlgorithmRunner.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/DataSetStorageAlgorithmRunner.java index eaf928673af..8be39f89f93 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/DataSetStorageAlgorithmRunner.java +++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/DataSetStorageAlgorithmRunner.java @@ -312,7 +312,12 @@ public class DataSetStorageAlgorithmRunner<T extends DataSetInformation> postRegistration(); - return storeAfterRegistration(RecoveryStage.PRECOMMIT); + if (false == commitAndStore()) + { + return false; + } + + return storeAfterRegistration(); // confirm storage in AS @@ -335,35 +340,33 @@ public class DataSetStorageAlgorithmRunner<T extends DataSetInformation> + registrationId.toString() + ")"); } - // FIXME: only temporary - extract this knowledge a leve higher - /** - * Execute the post-registration part of the storage process - */ - public boolean storeAfterRegistration(DataSetStorageRecoveryInfo.RecoveryStage stage) + public boolean commitAndStore() { - - if (stage.before(RecoveryStage.STORAGE_COMPLETED)) + if (commitStorageProcessors() == false) { - // checkpoint - post-registration-hook executed - - if (commitStorageProcessors() == false) - { - return false; - } + return false; + } - // COMMITED + // COMMITED - if (storeCommitedDatasets() == false) - { - return false; - } + if (storeCommitedDatasets() == false) + { + return false; + } - if (shouldUseAutoRecovery()) - { - storageRecoveryManager.checkpointStoredStateBeforeStorageConfirmation(this); - } + if (shouldUseAutoRecovery()) + { + storageRecoveryManager.checkpointStoredStateBeforeStorageConfirmation(this); } - + return true; + } + + /** + * Execute the post-registration part of the storage process + */ + public boolean storeAfterRegistration() + { + cleanPrecommitDirectory(); boolean confirmStorageSucceeded = confirmStorageInApplicationServer(); diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v2/JythonTopLevelDataSetHandlerV2.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v2/JythonTopLevelDataSetHandlerV2.java index 339e56edbf5..ee8d83f5403 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v2/JythonTopLevelDataSetHandlerV2.java +++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v2/JythonTopLevelDataSetHandlerV2.java @@ -392,7 +392,16 @@ public class JythonTopLevelDataSetHandlerV2<T extends DataSetInformation> extend runner.postRegistration(); } - boolean success = runner.storeAfterRegistration(recoveryStage); + boolean success = true; + if (recoveryStage.before(RecoveryStage.STORAGE_COMPLETED)) + { + success = runner.commitAndStore(); + } + + if (success) + { + success = runner.storeAfterRegistration(); + } if (success) { logger.registerSuccess(); -- GitLab