diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/DataSetRegistrationTransaction.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/DataSetRegistrationTransaction.java index f2676ff04b2337c2c766d5c98b1535395b7c0abb..f712acc6d88b5bdd8799691094a3cdc94fb05a59 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/DataSetRegistrationTransaction.java +++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/DataSetRegistrationTransaction.java @@ -443,16 +443,20 @@ public class DataSetRegistrationTransaction<T extends DataSetInformation> implem { registrationService.queueDataSetRegistration(dataSet.getDataSetContents(), dataSet.getRegistrationDetails()); - - // File contents = dataSet.getDataSetContents(); - // DataSetRegistrationDetails<T> details = dataSet.getRegistrationDetails(); - // registrationService.getRegistratorState().getDataStrategyStore() - // .getDataStoreStrategy(details.getDataSetInformation(), contents); - // DataSetStorageAlgorithm<T> algorithm = - // new DataSetStorageAlgorithm<T>(contents, details, null, null, null, null, null, - // null); } registrationService.commit(); + + // for (DataSet<T> dataSet : registeredDataSets) + // { + // File contents = dataSet.getDataSetContents(); + // DataSetRegistrationDetails<T> details = dataSet.getRegistrationDetails(); + // registrationService.getRegistratorState().getDataStrategyStore() + // .getDataStoreStrategy(details.getDataSetInformation(), contents); + // DataSetStorageAlgorithm<T> algorithm = + // new DataSetStorageAlgorithm<T>(contents, details, null, null, null, null, + // null, null); + // } + // registrationService.commit(); } /** @@ -506,6 +510,7 @@ public class DataSetRegistrationTransaction<T extends DataSetInformation> implem { this.liveState = liveState; deleteStagingFolders(); + this.liveState.rollbackStack.discard(); } private void deleteStagingFolders() @@ -515,6 +520,7 @@ public class DataSetRegistrationTransaction<T extends DataSetInformation> implem dataSet.getDataSetStagingFolder().delete(); } } + } private static class CommitedTransactionState<T extends DataSetInformation> extends diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/DataSetRegistrationTransactionTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/DataSetRegistrationTransactionTest.java index 418e8d253660ca64d4032184cacdb814a7fbecdb..d1f4e047c910503614ba3f1ae93e5dd8878ede8c 100644 --- a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/DataSetRegistrationTransactionTest.java +++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/DataSetRegistrationTransactionTest.java @@ -214,7 +214,9 @@ public class DataSetRegistrationTransactionTest extends AbstractFileSystemTestCa context.assertIsSatisfied(); } - @Test + // The second invocation of rollback will cause a class-cast exception. + @Test(expectedExceptions = + { ClassCastException.class }) public void testDoubleRollbackNormal() { setUpOpenBisExpectations(false);