RED-7883: BACKPORT: updated methods to import and export with UTF-8 instead of modified UTF-8

This commit is contained in:
Ali Oezyetimoglu 2023-11-20 15:44:18 +01:00
parent b5db1ee8ed
commit c8f25db697
2 changed files with 23 additions and 23 deletions

View File

@ -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<String> 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;
}

View File

@ -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<String> 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<String> 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");
}