From c9121ebb1a27b205c7fac2ac88e3db0652ff5e56 Mon Sep 17 00:00:00 2001 From: George Kalampokis Date: Fri, 26 Jan 2024 12:54:55 +0200 Subject: [PATCH] Fix error if one of the file transformer clients doesn't respond --- .../transformer/FileTransformerService.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/dmp-backend/core/src/main/java/eu/eudat/service/transformer/FileTransformerService.java b/dmp-backend/core/src/main/java/eu/eudat/service/transformer/FileTransformerService.java index e7a8bd2b0..a70090103 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/service/transformer/FileTransformerService.java +++ b/dmp-backend/core/src/main/java/eu/eudat/service/transformer/FileTransformerService.java @@ -110,13 +110,21 @@ public class FileTransformerService { //GK: So much for lazy loading List repositories = transformerProperties.getSources().stream().map(depositSource -> getRepository(depositSource.getCodes().get(0))).toList(); + repositories = new ArrayList<>(repositories); + List toDelete = new ArrayList<>(); repositories.forEach((client) -> { - FileTransformerConfiguration repositoryConfigs = client.getConfiguration(); - if (repositoryConfigs != null && !repositoryConfigs.getExportVariants().isEmpty()) { - configurations.addAll(repositoryConfigs.getExportVariants()); + try { + FileTransformerConfiguration repositoryConfigs = client.getConfiguration(); + if (repositoryConfigs != null && !repositoryConfigs.getExportVariants().isEmpty()) { + configurations.addAll(repositoryConfigs.getExportVariants()); + } + } catch (Exception e) { + toDelete.add(client); } }); + repositories.removeAll(toDelete); + configs = new TransformerCacheModel(configurations); this.fileTransformerConfigurationCache.put("base", configs); }