From 51f5c82b17439fbdc76a983903adb33b343110ad Mon Sep 17 00:00:00 2001
From: Sonia Zorba <sonia.zorba@inaf.it>
Date: Wed, 16 Jun 2021 17:25:31 +0200
Subject: [PATCH] Used job_id instead of busy_state

---
 .../ia2/transfer/controller/PutFileController.java    |  4 ++--
 .../it/inaf/ia2/transfer/persistence/FileDAO.java     | 11 ++++++++---
 2 files changed, 10 insertions(+), 5 deletions(-)

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 b566c89..e9c8e7f 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 4ec5f6f..ce9c335 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;
         });
-- 
GitLab