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);