diff --git a/src/main/java/org/hbp/mip/controllers/ExperimentApi.java b/src/main/java/org/hbp/mip/controllers/ExperimentApi.java index 4c80015b04ad7b69da6e824356d5d66ddbaf2c50..6f33f80613a9291903a70d5fe87887bf21ef46bf 100644 --- a/src/main/java/org/hbp/mip/controllers/ExperimentApi.java +++ b/src/main/java/org/hbp/mip/controllers/ExperimentApi.java @@ -217,58 +217,32 @@ public class ExperimentApi { new Thread() { public void run() { try { - - /* Launch computation */ - - String url = miningExaremeQueryUrl + "/" + algoCode + "/?format=true"; + String url = miningExaremeQueryUrl + "/" + algoCode; StringBuilder results = new StringBuilder(); int code = HTTPUtil.sendPost(url, jsonQuery, results); - if (code < 200 || code > 299) { - experiment.setHasError(true); - experiment.setHasServerError(true); - experiment.setResult("Exareme returned code : " + code); - } - - JsonParser parser = new JsonParser(); - String key = parser.parse(results.toString()).getAsJsonObject().get("queryKey").getAsString(); - - /* Wait for result */ - - url = miningExaremeQueryUrl + "/" + key + "/status"; - double progress = 0; - - while (progress < 100) { - Thread.sleep(200); - results = new StringBuilder(); - code = HTTPUtil.sendPost(url, jsonQuery, results); - if (code < 200 || code > 299) { - experiment.setHasError(true); - experiment.setHasServerError(true); - experiment.setResult("Exareme returned code : " + code); - } - progress = parser.parse(results.toString()).getAsJsonObject().get("status").getAsDouble(); - } - - /* Get result */ - - url = miningExaremeQueryUrl + "/" + key + "/result"; - results = new StringBuilder(); - code = HTTPUtil.sendPost(url, jsonQuery, results); experiment.setResult(results.toString().replace("\0", "")); experiment.setHasError(code >= 400); experiment.setHasServerError(code >= 500); - - } catch (UnknownHostException uhe) { - uhe.printStackTrace(); - experiment.setHasError(true); - experiment.setHasServerError(true); - experiment.setResult(uhe.getMessage()); - } catch (InterruptedException e) { - e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); + experiment.setHasError(true); + experiment.setHasServerError(true); + experiment.setResult(e.getMessage()); + } + + experiment.setFinished(new Date()); + + try { + Session session = HibernateUtil.getSessionFactory().openSession(); + Transaction transaction = session.beginTransaction(); + session.update(experiment); + transaction.commit(); + session.close(); + } catch (DataException e) { + throw e; } + } }.start(); }