From 62dbeaa7083dc140c8df4ab04790a9605fc7e1d6 Mon Sep 17 00:00:00 2001
From: Mirco Nasuti <mirco.nasuti@chuv.ch>
Date: Wed, 30 Nov 2016 15:35:40 +0100
Subject: [PATCH] handle query error in experimentActor

---
 src/main/java/eu/hbp/mip/akka/ExperimentActor.java | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/src/main/java/eu/hbp/mip/akka/ExperimentActor.java b/src/main/java/eu/hbp/mip/akka/ExperimentActor.java
index 8e29f1762..b93fbc0e1 100644
--- a/src/main/java/eu/hbp/mip/akka/ExperimentActor.java
+++ b/src/main/java/eu/hbp/mip/akka/ExperimentActor.java
@@ -5,6 +5,7 @@ import akka.actor.UntypedActor;
 import akka.event.Logging;
 import akka.event.LoggingAdapter;
 import akka.japi.Creator;
+import eu.hbp.mip.messages.external.QueryError;
 import eu.hbp.mip.messages.external.QueryResult;
 import eu.hbp.mip.model.Experiment;
 import eu.hbp.mip.repositories.ExperimentRepository;
@@ -51,6 +52,17 @@ public class ExperimentActor extends UntypedActor {
             experimentRepository.save(experiment);
             log.info("Experiment "+ expUUID +" updated (finished)");
         }
+        else if (message instanceof QueryError) {
+            QueryError queryError = (QueryError) message;
+            log.warning("received query error");
+            Experiment experiment = experimentRepository.findOne(expUUID);
+            experiment.setHasServerError(true);
+            experiment.setResult(queryError.message());
+            experimentRepository.save(experiment);
+            experiment.setFinished(new Date());
+            experimentRepository.save(experiment);
+            log.info("Experiment "+ expUUID +" updated (finished)");
+        }
         else {
             unhandled(message);
         }
-- 
GitLab