From af113ab6cda38e4b30a56e4dc6d4b424250626a3 Mon Sep 17 00:00:00 2001
From: Sonia Zorba <sonia.zorba@inaf.it>
Date: Tue, 13 Apr 2021 17:59:43 +0200
Subject: [PATCH] Length property must be always present

---
 src/main/java/it/inaf/oats/vospace/persistence/NodeDAO.java  | 5 +++--
 .../java/it/inaf/oats/vospace/persistence/NodeDAOTest.java   | 3 ++-
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/main/java/it/inaf/oats/vospace/persistence/NodeDAO.java b/src/main/java/it/inaf/oats/vospace/persistence/NodeDAO.java
index 10ada3f..467a0ee 100644
--- a/src/main/java/it/inaf/oats/vospace/persistence/NodeDAO.java
+++ b/src/main/java/it/inaf/oats/vospace/persistence/NodeDAO.java
@@ -187,8 +187,9 @@ public class NodeDAO {
 
         List<Property> properties = new ArrayList<>();
 
-        addProperty(NodeProperties.LENGTH_URI, rs.getString("content_length"),
-                properties);
+        // Content length is required for CADC client compatibility
+        String contentLength = rs.getString("content_length");
+        addProperty(NodeProperties.LENGTH_URI, contentLength == null ? "0" : contentLength, properties);
 
         String creationTime = rs.getString("created_on").replace(" ", "T");
         
diff --git a/src/test/java/it/inaf/oats/vospace/persistence/NodeDAOTest.java b/src/test/java/it/inaf/oats/vospace/persistence/NodeDAOTest.java
index c2eb856..718b79b 100644
--- a/src/test/java/it/inaf/oats/vospace/persistence/NodeDAOTest.java
+++ b/src/test/java/it/inaf/oats/vospace/persistence/NodeDAOTest.java
@@ -59,7 +59,8 @@ public class NodeDAOTest {
         ContainerNode root = (ContainerNode) dao.listNode("/").get();
         assertEquals(2, root.getNodes().size());
 
-        assertEquals("true", NodeProperties.getNodePropertyAsListByURI(root, NodeProperties.PUBLIC_READ_URI).get(0));
+        assertEquals("true", NodeProperties.getNodePropertyByURI(root, NodeProperties.PUBLIC_READ_URI));
+        assertEquals("0", NodeProperties.getNodePropertyByURI(root, NodeProperties.LENGTH_URI));
 
         assertEquals("group1 group2", NodeProperties.getNodePropertyByURI(root.getNodes().get(0), NodeProperties.GROUP_READ_URI));
 
-- 
GitLab