From 5bf801a7fee42ca98884e29c09c857aacf99e799 Mon Sep 17 00:00:00 2001
From: cramakri <cramakri>
Date: Tue, 24 Jul 2012 09:41:39 +0000
Subject: [PATCH] BIS-129 SP-209 : Improve text and formatting of log messages.
 Surpress unnecessary logging. Ensure rollback of work when no metadata is
 registered because the file was deleted

SVN: 26173
---
 .../ch/systemsx/cisd/etlserver/ETLDaemon.java |  2 +-
 .../DataSetStorageAlgorithmRunner.java        | 28 +++++++++++++++----
 .../impl/DataSetRegistrationTransaction.java  |  7 +++--
 3 files changed, 29 insertions(+), 8 deletions(-)

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 47b3fca0c4f..522785d1222 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 7a83552a461..f64ed0be0ea 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 c726722064b..354de43a9fa 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 =
-- 
GitLab