From 042ca6ada3451069f60df28f553b5cd727da6136 Mon Sep 17 00:00:00 2001
From: Sonia Zorba <sonia.zorba@inaf.it>
Date: Fri, 23 Apr 2021 10:15:57 +0200
Subject: [PATCH] Minor fix in JobDAO

---
 .../it/inaf/oats/vospace/persistence/JobDAO.java     | 12 ++++++------
 .../it/inaf/oats/vospace/persistence/JobDAOTest.java |  3 +++
 2 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/src/main/java/it/inaf/oats/vospace/persistence/JobDAO.java b/src/main/java/it/inaf/oats/vospace/persistence/JobDAO.java
index 5f2e6ec..b12c299 100644
--- a/src/main/java/it/inaf/oats/vospace/persistence/JobDAO.java
+++ b/src/main/java/it/inaf/oats/vospace/persistence/JobDAO.java
@@ -122,16 +122,16 @@ public class JobDAO {
         jobSummary.setResults(getResults(rs.getString("results")));
         
         // Retrieve error information if any
-        ErrorSummary errorSummary = new ErrorSummary();
-        errorSummary.setMessage(rs.getString("error_message"));
         String errorType = rs.getString("error_type");
         if (errorType != null) {
+            ErrorSummary errorSummary = new ErrorSummary();
+            errorSummary.setMessage(rs.getString("error_message"));
             errorSummary.setType(ErrorType.fromValue(rs.getString("error_type")));
+            errorSummary.setHasDetail(rs.getBoolean("error_has_detail"));
+            errorSummary.setDetailMessage(rs.getString("error_detail"));
+
+            jobSummary.setErrorSummary(errorSummary);
         }
-        errorSummary.setHasDetail(rs.getBoolean("error_has_detail"));
-        errorSummary.setDetailMessage(rs.getString("error_detail"));
-        
-        jobSummary.setErrorSummary(errorSummary);
         
         return jobSummary;
     }
diff --git a/src/test/java/it/inaf/oats/vospace/persistence/JobDAOTest.java b/src/test/java/it/inaf/oats/vospace/persistence/JobDAOTest.java
index a3a26c0..0191268 100644
--- a/src/test/java/it/inaf/oats/vospace/persistence/JobDAOTest.java
+++ b/src/test/java/it/inaf/oats/vospace/persistence/JobDAOTest.java
@@ -72,6 +72,9 @@ public class JobDAOTest {
         assertTrue(dao.getJob("123").isPresent());
         assertEquals(ExecutionPhase.PENDING, dao.getJob("123").get().getPhase());
 
+        // uses the job retrieved from DAO to perform the update (reproduced a bug in job update)
+        job = dao.getJob("123").get();
+
         job.setPhase(ExecutionPhase.EXECUTING);
         dao.updateJob(job);
 
-- 
GitLab