diff --git a/src/main/java/it/inaf/ia2/transfer/controller/PutFileController.java b/src/main/java/it/inaf/ia2/transfer/controller/PutFileController.java index b566c89a285b801b79bb2e7cf3861cd57cd2ce27..e9c8e7f4e60cc5e1c7ec94cbeabe07be52b17203 100644 --- a/src/main/java/it/inaf/ia2/transfer/controller/PutFileController.java +++ b/src/main/java/it/inaf/ia2/transfer/controller/PutFileController.java @@ -101,7 +101,7 @@ public class PutFileController extends FileController { } try { - fileDAO.setBusy(fileInfo.getNodeId(), true); + fileDAO.setBusy(fileInfo.getNodeId(), jobId); Files.copy(is, file.toPath()); if (fileInfo.getContentType() == null) { @@ -126,7 +126,7 @@ public class PutFileController extends FileController { } throw ex; } finally { - fileDAO.setBusy(fileInfo.getNodeId(), false); + fileDAO.setBusy(fileInfo.getNodeId(), null); } } diff --git a/src/main/java/it/inaf/ia2/transfer/persistence/FileDAO.java b/src/main/java/it/inaf/ia2/transfer/persistence/FileDAO.java index 4ec5f6fab722f4ea020f07428e32dc16aa12c20d..ce9c335de2fb5c397ad2c78cd41dd9d753101e7e 100644 --- a/src/main/java/it/inaf/ia2/transfer/persistence/FileDAO.java +++ b/src/main/java/it/inaf/ia2/transfer/persistence/FileDAO.java @@ -11,6 +11,7 @@ import java.sql.Array; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; +import java.sql.Types; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -118,13 +119,17 @@ public class FileDAO { return Arrays.asList((String[]) array.getArray()); } - public void setBusy(int nodeId, boolean busy) { + public void setBusy(int nodeId, String jobId) { - String sql = "UPDATE node SET busy_state = ? WHERE node_id = ?"; + String sql = "UPDATE node SET job_id = ? WHERE node_id = ?"; jdbcTemplate.update(conn -> { PreparedStatement ps = conn.prepareStatement(sql); - ps.setBoolean(1, busy); + if (jobId == null) { + ps.setNull(1, Types.VARCHAR); + } else { + ps.setString(1, jobId); + } ps.setInt(2, nodeId); return ps; });