From 249c9a26d84d15037cdc9c97780eec145a573431 Mon Sep 17 00:00:00 2001
From: Simon Barner <barner@fortiss.org>
Date: Fri, 13 Oct 2023 17:25:09 +0200
Subject: [PATCH] Fix computeGitObjectHash() on Linux

* String.length() does not return the expected size

Issue-Ref: 4310
Issue-Url: https://git.fortiss.org/af3/af3/-/issues/4310

Signed-off-by: Simon Barner <barner@fortiss.org>
---
 .../src/org/fortiss/tooling/ext/quality/storage/.ratings       | 2 +-
 .../org/fortiss/tooling/ext/quality/storage/CSVFileWriter.java | 3 ++-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/org.fortiss.tooling.ext.quality/src/org/fortiss/tooling/ext/quality/storage/.ratings b/org.fortiss.tooling.ext.quality/src/org/fortiss/tooling/ext/quality/storage/.ratings
index a7cf9548b..3ccb44dac 100644
--- a/org.fortiss.tooling.ext.quality/src/org/fortiss/tooling/ext/quality/storage/.ratings
+++ b/org.fortiss.tooling.ext.quality/src/org/fortiss/tooling/ext/quality/storage/.ratings
@@ -1,2 +1,2 @@
-CSVFileWriter.java 0cae6203edc159cec0d3f68c61f4b04a3c61eecd RED
+CSVFileWriter.java 7df3c06231037c5026ca7fa18572d935d444ebf7 RED
 ModelQualityStorageManager.java 8293f17743bdc85e2595eae99b978ed868bd029b RED
diff --git a/org.fortiss.tooling.ext.quality/src/org/fortiss/tooling/ext/quality/storage/CSVFileWriter.java b/org.fortiss.tooling.ext.quality/src/org/fortiss/tooling/ext/quality/storage/CSVFileWriter.java
index 0cae6203e..7df3c0623 100644
--- a/org.fortiss.tooling.ext.quality/src/org/fortiss/tooling/ext/quality/storage/CSVFileWriter.java
+++ b/org.fortiss.tooling.ext.quality/src/org/fortiss/tooling/ext/quality/storage/CSVFileWriter.java
@@ -233,7 +233,8 @@ public class CSVFileWriter {
 
 			// Construct pre-image (input to hash function) according to Git specification
 			String fileContents = inputBuilder.toString();
-			int n = fileContents.length();
+			// fileContexts.length() does not return the correct length on some platforms (e.g., Linux)
+			int n = fileContents.getBytes().length;
 			String preImage = "blob " + n + "\0" + fileContents;
 
 			// Compute hash and convert it to a hex string
-- 
GitLab