From cd7975c8215f4adad01c01ab185b2b881a125e9c Mon Sep 17 00:00:00 2001 From: Github Action Date: Mon, 18 Nov 2024 08:30:41 +0000 Subject: [PATCH 1/2] Version 1.0.1-SNAPSHOT [skip ci] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 40d368b..a004a53 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,7 @@ fr.abes kbart2kafka - 1.0.0 + 1.0.1-SNAPSHOT jar kbart2kafka chargement d'un fichier kbart dans kafka From 7b02fb4a7dd5e03cafa6fdb6ceb5e0bb2163ad9d Mon Sep 17 00:00:00 2001 From: SamuelQuetin Date: Mon, 25 Nov 2024 13:58:41 +0100 Subject: [PATCH 2/2] ajout checkUtf8format --- .../fr/abes/kbart2kafka/service/FileService.java | 2 ++ .../java/fr/abes/kbart2kafka/utils/CheckFiles.java | 12 ++++++++++++ 2 files changed, 14 insertions(+) diff --git a/src/main/java/fr/abes/kbart2kafka/service/FileService.java b/src/main/java/fr/abes/kbart2kafka/service/FileService.java index 0f5bb32..d6ee6ca 100644 --- a/src/main/java/fr/abes/kbart2kafka/service/FileService.java +++ b/src/main/java/fr/abes/kbart2kafka/service/FileService.java @@ -5,6 +5,7 @@ import fr.abes.kbart2kafka.dto.LigneKbartDto; import fr.abes.kbart2kafka.exception.IllegalDateException; import fr.abes.kbart2kafka.exception.IllegalFileFormatException; +import fr.abes.kbart2kafka.utils.CheckFiles; import fr.abes.kbart2kafka.utils.PUBLICATION_TYPE; import fr.abes.kbart2kafka.utils.Utils; import lombok.extern.slf4j.Slf4j; @@ -71,6 +72,7 @@ private void executeMultiThread(File fichier) throws IllegalFileFormatException ThreadContext.put("package", fichier.getName() + ";" + cpt.get()); String[] tsvElementsOnOneLine = ligneKbart.split("\t"); try { + CheckFiles.isValidUtf8(ligneKbart); kbartsToSend.add(mapper.writeValueAsString(constructDto(tsvElementsOnOneLine, cpt.get(), nbLignesFichier))); } catch (IllegalDateException | IllegalFileFormatException | JsonProcessingException e) { log.error("Erreur dans le fichier en entrée à la ligne " + cpt.get() + " : " + e.getMessage()); diff --git a/src/main/java/fr/abes/kbart2kafka/utils/CheckFiles.java b/src/main/java/fr/abes/kbart2kafka/utils/CheckFiles.java index d61ef76..45748e8 100644 --- a/src/main/java/fr/abes/kbart2kafka/utils/CheckFiles.java +++ b/src/main/java/fr/abes/kbart2kafka/utils/CheckFiles.java @@ -8,6 +8,9 @@ import java.io.File; import java.io.FileReader; import java.io.IOException; +import java.nio.charset.CharacterCodingException; +import java.nio.charset.CharsetDecoder; +import java.nio.charset.StandardCharsets; @Slf4j public class CheckFiles { @@ -94,4 +97,13 @@ public static void verifyFile(File file, String header) throws IllegalFileFormat detectTabulations(file); detectHeaderPresence(header, file, isBypassOptionPresent); } + + public static void isValidUtf8(String input) throws IllegalFileFormatException { + CharsetDecoder decoder = StandardCharsets.UTF_8.newDecoder(); + try { + decoder.decode(java.nio.ByteBuffer.wrap(input.getBytes(StandardCharsets.UTF_8))); + } catch (CharacterCodingException e) { + throw new IllegalFileFormatException("le fichier contient des caracters qui ne sont pas en UTF8"); + } + } }