From 77c3d2e45de42bb5995859b2248651d4d20f2931 Mon Sep 17 00:00:00 2001
From: Jan-Niclas Struewer <j.n.struewer@gmail.com>
Date: Fri, 3 Nov 2023 17:16:12 +0100
Subject: [PATCH] fixed disappearing children for RatioKPICalculationStrategy

---
 .../kpi/strategy/RatioKPICalculationStrategy.kt             | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/main/kotlin/de/fraunhofer/iem/dataprovider/kpi/strategy/RatioKPICalculationStrategy.kt b/src/main/kotlin/de/fraunhofer/iem/dataprovider/kpi/strategy/RatioKPICalculationStrategy.kt
index 1f258d8a..ec398d3e 100644
--- a/src/main/kotlin/de/fraunhofer/iem/dataprovider/kpi/strategy/RatioKPICalculationStrategy.kt
+++ b/src/main/kotlin/de/fraunhofer/iem/dataprovider/kpi/strategy/RatioKPICalculationStrategy.kt
@@ -8,11 +8,13 @@ class RatioKPICalculationStrategy : KPICalculationStrategy {
         if (children.size != 2) {
             throw Exception("Requires exactly two children")
         }
+        // TODO: this is a dirty workaround to fix a copy by reference bug
+        val copiedChildren = children.toList()
         val firstValue = children[0].to.getValue()
         val secondValue = children[1].to.getValue()
         if (firstValue >= secondValue) {
-            return Pair(((secondValue.toDouble() / firstValue.toDouble()) * 100).toInt(), children)
+            return Pair(((secondValue.toDouble() / firstValue.toDouble()) * 100).toInt(), copiedChildren)
         }
-        return Pair(((firstValue.toDouble() / secondValue.toDouble()) * 100).toInt(), children)
+        return Pair(((firstValue.toDouble() / secondValue.toDouble()) * 100).toInt(), copiedChildren)
     }
 }
-- 
GitLab