diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/ETLService.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/ETLService.java index 1713b8e9667f4f1397a83a4aefd45e45f46d91c4..c8948caff9e4f365e0a035531daaf47da611e86a 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/ETLService.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/ETLService.java @@ -1748,9 +1748,13 @@ public class ETLService extends AbstractCommonServer<IETLLIMSService> implements final IDataBO dataBO = businessObjectFactory.createDataBO(session); - dataBO.loadByCode(dataSetCode); - dataBO.setStorageConfirmed(); - daoFactory.getPostRegistrationDAO().addDataSet(dataBO.getData()); + if (false == dataBO.isStorageConfirmed()) + { + dataBO.loadByCode(dataSetCode); + + dataBO.setStorageConfirmed(); + daoFactory.getPostRegistrationDAO().addDataSet(dataBO.getData()); + } } @Override diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/DataBO.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/DataBO.java index 75b76c3a155bae0c07292e7d199670a645dfec76..959b4731c2b9a0f92ed8cf71bca06e8af07e49bf 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/DataBO.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/DataBO.java @@ -691,4 +691,15 @@ public class DataBO extends AbstractDataSetBusinessObject implements IDataBO externalData.setStorageConfirmation(true); } } + + @Override + public boolean isStorageConfirmed() + { + ExternalDataPE externalData = data.tryAsExternalData(); + if (null != externalData) + { + return externalData.isStorageConfirmation(); + } + return true; + } } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/IDataBO.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/IDataBO.java index 88b133814025034a31a5b1b25f21ad95d5268828..acd909a81f965afcf024cc57dcba9671bc854251 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/IDataBO.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/IDataBO.java @@ -130,10 +130,12 @@ public interface IDataBO extends IEntityBusinessObject /** * Indicate that the storage of the external data has been confirmed. - * - * @throws UserFailureException - * if the this is not external data */ public void setStorageConfirmed(); + /** + * @return true if the storage of this dataset has been confirmed or this is not external data + */ + public boolean isStorageConfirmed(); + }