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 5f2e6ec8bcb370fe4516570eb214813d6b37eb84..b12c29909093b101f26b3ef6ff7b8bbfa1375e71 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 a3a26c07914455e0bffc0c5aad67268b35ac6d89..0191268ec1e9717f9f7498fcb9ed7b7c13f5a799 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);