From 321f6107c874881d87e505c47f3d86e8024448b2 Mon Sep 17 00:00:00 2001
From: Martin Weise <martin.weise@tuwien.ac.at>
Date: Sat, 9 Nov 2024 19:47:25 +0000
Subject: [PATCH] Resolve "Bug prevents volume computation when data length
 column in Metadata DB is null"

---
 .docs/changelog.md                                       | 4 +++-
 .gitlab-ci.yml                                           | 4 ++++
 .../src/main/java/at/tuwien/config/MetricsConfig.java    | 9 ++++++++-
 3 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/.docs/changelog.md b/.docs/changelog.md
index 075bde6045..f2a35ee8f9 100644
--- a/.docs/changelog.md
+++ b/.docs/changelog.md
@@ -2,7 +2,7 @@
 author: Martin Weise
 ---
 
-## v1.5.1 (2024-11-07)
+## v1.5.1 (2024-11-09)
 
 [:simple-gitlab: GitLab Release](https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/tags/v1.5.1)
 
@@ -10,6 +10,8 @@ author: Martin Weise
 
 #### Fixes
 
+* Bug where the data volume could not be calculated when the data length column in the Metadata Database is `null`
+  in [#462](https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/issues/462).
 * Bug where the schema could not be created manually 
   in [#461](https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/issues/461).
 
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 43c5094c9a..f6c11fbf88 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -393,6 +393,10 @@ release-helm:
     refs:
       - /^release-.*/
   when: manual
+  needs:
+    - build-helm
+  dependencies:
+    - build-helm
   before_script:
     - "docker logout ${CI_REGISTRY_URL}"
     - "echo ${CI_REGISTRY_PASSWORD} | docker login --username ${CI_REGISTRY_USER} --password-stdin ${CI_REGISTRY_URL}"
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/MetricsConfig.java b/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/MetricsConfig.java
index 1b7578b4bc..b86a97a4dc 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/MetricsConfig.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/MetricsConfig.java
@@ -14,6 +14,8 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 
+import java.util.Objects;
+
 @Log4j2
 @Configuration
 public class MetricsConfig {
@@ -70,7 +72,12 @@ public class MetricsConfig {
                     if (tableRepository.findAll().isEmpty()) {
                         return 0;
                     }
-                    return tableRepository.findAll().stream().map(Table::getDataLength).mapToLong(d -> d).sum();
+                    return tableRepository.findAll()
+                            .stream()
+                            .map(Table::getDataLength)
+                            .filter(Objects::nonNull)
+                            .mapToLong(d -> d)
+                            .sum();
                 })
                 .description("The total volume of available research data")
                 .strongReference(true)
-- 
GitLab