diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/ETLDaemon.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/ETLDaemon.java index 47b3fca0c4fb332a72f0d21a7c25f5951d567649..522785d12226e9851a358efef9119b094c967b39 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/ETLDaemon.java +++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/ETLDaemon.java @@ -610,7 +610,7 @@ public final class ETLDaemon if (scannedStore.existsOrError(storeItem)) { StringBuffer sb = new StringBuffer(); - sb.append("The thread configuration setting" + sb.append("The thread configuration setting " + ch.systemsx.cisd.etlserver.ThreadParameters.REPROCESS_FAULTY_DATASETS_NAME + " = true."); sb.append(" File " 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 7a83552a4610558894ddadc90d0575ea457ab022..f64ed0be0eabc55b8ef30b78a454174229ff6fbc 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 @@ -475,7 +475,11 @@ public class DataSetStorageAlgorithmRunner<T extends DataSetInformation> private void rollbackDuringMetadataRegistration(Throwable ex) { - operationLog.error("Failed to register metadata", ex); + if (false == ex instanceof IncomingFileDeletedBeforeRegistrationException) + { + // Don't log if the file was deleted before registration, we already know. + operationLog.error("Failed to register metadata", ex); + } rollbackStorageProcessors(ex); rollbackDelegate.didRollbackStorageAlgorithmRunner(this, ex, ErrorType.OPENBIS_REGISTRATION_FAILURE); @@ -576,8 +580,10 @@ public class DataSetStorageAlgorithmRunner<T extends DataSetInformation> { result = registerData(registrationId, registrationData); } - - dssRegistrationLog.log("Data has been registered with the openBIS Application Server."); + if (result) + { + dssRegistrationLog.log("Data has been registered with the openBIS Application Server."); + } return result; } @@ -621,6 +627,14 @@ public class DataSetStorageAlgorithmRunner<T extends DataSetInformation> applicationServerRegistrator.registerDataSetsInApplicationServer( registrationId, registrationData); return true; + } catch (IncomingFileDeletedBeforeRegistrationException e) + { + operationLog + .warn("The incoming file was deleted before registration. Nothing was registered in openBIS."); + dssRegistrationLog + .log("The incoming file was deleted before registration. Nothing was registered in openBIS."); + rollbackDuringMetadataRegistration(e); + return false; } catch (final Throwable exception) { operationLog.error("Error in registrating data in application server", @@ -753,8 +767,12 @@ public class DataSetStorageAlgorithmRunner<T extends DataSetInformation> private void rollbackStorageProcessors(Throwable ex) { - operationLog.error( - "Error during dataset registration: " + ExceptionUtils.getRootCauseMessage(ex), ex); + if (false == ex instanceof IncomingFileDeletedBeforeRegistrationException) + { + operationLog.error( + "Error during dataset registration: " + ExceptionUtils.getRootCauseMessage(ex), + ex); + } // Errors which are not AssertionErrors leave the system in a state that we don't // know and can't trust. Thus we will not perform any operations any more in this 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 c726722064bc90ede518eeeee6705feceae1e140..354de43a9facc00ec1751021afbf64169a3a8bf0 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 @@ -504,8 +504,11 @@ public class DataSetRegistrationTransaction<T extends DataSetInformation> implem public void didRollbackStorageAlgorithmRunner(DataSetStorageAlgorithmRunner<T> algorithm, Throwable ex, ErrorType errorType) { - - operationLog.error("The error ", ex); + if (false == ex instanceof IncomingFileDeletedBeforeRegistrationException) + { + // Don't log if the file was deleted before registration, we already know. + operationLog.error("The error ", ex); + } boolean useAutoRecovery = autoRecoverySettings == AutoRecoverySettings.USE_AUTO_RECOVERY; IDataSetStorageRecoveryManager storageRecoveryManager =