From 51161aa68fd75dd2ca9bfcbb6b5124991826b341 Mon Sep 17 00:00:00 2001 From: Ali Oezyetimoglu Date: Mon, 20 Nov 2023 15:50:00 +0100 Subject: [PATCH] Revert "RED-7883: BACKPORT: updated methods to import and export with UTF-8 instead of modified UTF-8" This reverts commit a95f929923c0482b1d074a874d729543f599228e --- .../service/DossierTemplateImportService.java | 19 +++++++++--- .../export/DossierTemplateExportService.java | 29 +++++++------------ 2 files changed, 25 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 f72902219..c57727daa 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,8 +2,13 @@ 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.*; -import java.nio.charset.StandardCharsets; +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.time.OffsetDateTime; import java.time.temporal.ChronoUnit; import java.util.ArrayList; @@ -675,13 +680,19 @@ public class DossierTemplateImportService { private List readEntries(byte[] bytes) { ByteArrayInputStream bInput = new ByteArrayInputStream(bytes); - try (BufferedReader br = new BufferedReader(new InputStreamReader(bInput, StandardCharsets.UTF_8))) { - return br.lines().collect(Collectors.toList()); + DataInputStream in = new DataInputStream(bInput); + List entries = new ArrayList<>(); + try { + while (in.available() > 0) { + String entry = in.readUTF(); + entries.add(entry); + } } 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 efbfdfd77..da3be619b 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.*; -import java.nio.charset.StandardCharsets; -import java.util.Iterator; +import java.io.ByteArrayOutputStream; +import java.io.DataOutputStream; +import java.io.IOException; import java.util.List; import java.util.stream.Collectors; @@ -226,24 +226,15 @@ public class DossierTemplateExportService { private void writeEntriesListToFile(FileSystemBackedArchiver fileSystemBackedArchiver, List entriesValuesList, String folderName, String filename) { - 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(); - } + try { + ByteArrayOutputStream bt = new ByteArrayOutputStream(); + DataOutputStream dt = new DataOutputStream(bt); + for (String entry : entriesValuesList) { + dt.writeUTF(entry); } - 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"); }