From e1438ca75c0e81f871030aea116199873e680cbf Mon Sep 17 00:00:00 2001
From: Mirco Nasuti <mirco.nasuti@chuv.ch>
Date: Thu, 14 Jul 2016 15:21:49 +0200
Subject: [PATCH] bugfix receiving experiments results

---
 .../hbp/mip/controllers/ExperimentApi.java    | 19 ++++++++++++-------
 .../java/org/hbp/mip/model/Experiment.java    | 11 -----------
 2 files changed, 12 insertions(+), 18 deletions(-)

diff --git a/src/main/java/org/hbp/mip/controllers/ExperimentApi.java b/src/main/java/org/hbp/mip/controllers/ExperimentApi.java
index 69fd8c26b..99275314d 100644
--- a/src/main/java/org/hbp/mip/controllers/ExperimentApi.java
+++ b/src/main/java/org/hbp/mip/controllers/ExperimentApi.java
@@ -22,6 +22,7 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.net.MalformedURLException;
+import java.util.Date;
 import java.util.List;
 import java.util.UUID;
 
@@ -267,10 +268,10 @@ public class ExperimentApi {
         new Thread() {
             @Override
             public void run() {
-                    String url = experimentUrl;
-                    String query = experiment.computeQuery();
+                String url = experimentUrl;
+                String query = experiment.computeQuery();
 
-                    // Results are stored in the experiment object
+                // Results are stored in the experiment object
                 try {
                     executeExperiment(url, query, experiment);
                 } catch (IOException e) {
@@ -278,8 +279,7 @@ public class ExperimentApi {
                     LOGGER.warn("Experiment failed to run properly !");
                     setExperimentError(e, experiment);
                 }
-
-                experiment.finish();
+                finishExpermient(experiment);
             }
         }.start();
     }
@@ -305,12 +305,17 @@ public class ExperimentApi {
                     {
                         experiment.setResult("Unsupported variables !");
                     }
-
-                experiment.finish();
+                finishExpermient(experiment);
             }
         }.start();
     }
 
+    private void finishExpermient(Experiment experiment)
+    {
+        experiment.setFinished(new Date());
+        experimentRepository.save(experiment);
+    }
+
     private static void executeExperiment(String url, String query, Experiment experiment) throws IOException {
         StringBuilder results = new StringBuilder();
         int code = HTTPUtil.sendPost(url, query, results);
diff --git a/src/main/java/org/hbp/mip/model/Experiment.java b/src/main/java/org/hbp/mip/model/Experiment.java
index 8194151b0..f42ffbd6c 100644
--- a/src/main/java/org/hbp/mip/model/Experiment.java
+++ b/src/main/java/org/hbp/mip/model/Experiment.java
@@ -6,9 +6,7 @@ import com.google.gson.JsonArray;
 import com.google.gson.JsonObject;
 import com.google.gson.annotations.Expose;
 import org.apache.log4j.Logger;
-import org.hbp.mip.repositories.ExperimentRepository;
 import org.hibernate.annotations.Cascade;
-import org.springframework.beans.factory.annotation.Autowired;
 
 import javax.persistence.*;
 import java.util.Date;
@@ -31,10 +29,6 @@ public class Experiment {
             .excludeFieldsWithoutExposeAnnotation()
             .create();
 
-    @Autowired
-    @Transient
-    ExperimentRepository experimentRepository;
-
     @Id
     @Column(columnDefinition = "uuid")
     @org.hibernate.annotations.Type(type="pg-uuid")
@@ -145,11 +139,6 @@ public class Experiment {
         return new Gson().toJson(queryElements);
     }
 
-    public void finish() {
-        this.setFinished(new Date());
-        experimentRepository.save(this);
-    }
-
     public String getValidations() {
         return validations;
     }
-- 
GitLab