From c8f25db697a071b2e64b02ea3fcd82c76e412f22 Mon Sep 17 00:00:00 2001 From: Ali Oezyetimoglu Date: Mon, 20 Nov 2023 15:44:18 +0100 Subject: [PATCH] RED-7883: BACKPORT: updated methods to import and export with UTF-8 instead of modified UTF-8 --- .../service/DossierTemplateImportService.java | 17 +++-------- .../export/DossierTemplateExportService.java | 29 ++++++++++++------- 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/DossierTemplateImportService.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/DossierTemplateImportService.java index c57727daa..cded7884b 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/DossierTemplateImportService.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/DossierTemplateImportService.java @@ -2,13 +2,8 @@ package com.iqser.red.service.peristence.v1.server.service; import static com.iqser.red.service.persistence.management.v1.processor.utils.MagicConverter.convert; -import java.io.BufferedInputStream; -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.DataInputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; +import java.io.*; +import java.nio.charset.StandardCharsets; import java.time.OffsetDateTime; import java.time.temporal.ChronoUnit; import java.util.ArrayList; @@ -682,17 +677,13 @@ public class DossierTemplateImportService { ByteArrayInputStream bInput = new ByteArrayInputStream(bytes); DataInputStream in = new DataInputStream(bInput); List entries = new ArrayList<>(); - try { - while (in.available() > 0) { - String entry = in.readUTF(); - entries.add(entry); + try (BufferedReader br = new BufferedReader(new InputStreamReader(bInput, StandardCharsets.UTF_8))) { + return br.lines().collect(Collectors.toList()); - } } catch (IOException e) { log.debug("exception: ", e); throw new BadRequestException("Error while reading the entries", e); } - return entries; } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/export/DossierTemplateExportService.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/export/DossierTemplateExportService.java index da3be619b..efbfdfd77 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/export/DossierTemplateExportService.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/export/DossierTemplateExportService.java @@ -2,9 +2,9 @@ package com.iqser.red.service.peristence.v1.server.service.export; import static com.iqser.red.service.persistence.management.v1.processor.utils.MagicConverter.convert; -import java.io.ByteArrayOutputStream; -import java.io.DataOutputStream; -import java.io.IOException; +import java.io.*; +import java.nio.charset.StandardCharsets; +import java.util.Iterator; import java.util.List; import java.util.stream.Collectors; @@ -226,15 +226,24 @@ public class DossierTemplateExportService { private void writeEntriesListToFile(FileSystemBackedArchiver fileSystemBackedArchiver, List entriesValuesList, String folderName, String filename) { - try { - ByteArrayOutputStream bt = new ByteArrayOutputStream(); - DataOutputStream dt = new DataOutputStream(bt); - for (String entry : entriesValuesList) { - dt.writeUTF(entry); + try (ByteArrayOutputStream bt = new ByteArrayOutputStream(); + OutputStreamWriter osw = new OutputStreamWriter(bt, StandardCharsets.UTF_8); + BufferedWriter writer = new BufferedWriter(osw)) { + + Iterator iterator = entriesValuesList.iterator(); + + while (iterator.hasNext()) { + String entry = iterator.next(); + writer.write(entry); + + if (iterator.hasNext()) { + writer.newLine(); + } } + writer.flush(); + fileSystemBackedArchiver.addEntries(new FileSystemBackedArchiver.ArchiveModel(folderName, filename, bt.toByteArray())); - dt.close(); - bt.close(); + } catch (IOException e) { log.debug("Error writing values to files"); }