From 99e4d231c29c770e40ce8b69ec88ca5d802b117c Mon Sep 17 00:00:00 2001 From: George Kalampokis Date: Mon, 27 Sep 2021 18:14:21 +0300 Subject: [PATCH] Possible patch some leaks --- .../eu/eudat/logic/proxy/fetching/LocalFetcher.java | 3 ++- .../logic/services/utilities/MailServiceImpl.java | 1 + .../eu/eudat/models/rda/mapper/LanguageRDAMapper.java | 10 ++++++---- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/proxy/fetching/LocalFetcher.java b/dmp-backend/web/src/main/java/eu/eudat/logic/proxy/fetching/LocalFetcher.java index 5562f1f89..43478f359 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/proxy/fetching/LocalFetcher.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/proxy/fetching/LocalFetcher.java @@ -22,6 +22,7 @@ public class LocalFetcher { JAXBContext context = JAXBContext.newInstance(Config.class); Unmarshaller unmarshaller = context.createUnmarshaller(); Config config = (Config) unmarshaller.unmarshal(is); + is.close(); ConfigSingle currencyConfig = config.getConfigs().stream().filter(configSingle -> configSingle.getType().equals("currency")).findFirst().get(); return retrieveData(currencyConfig); @@ -39,7 +40,7 @@ public class LocalFetcher { Unmarshaller unmarshaller = context.createUnmarshaller(); Object object = unmarshaller.unmarshal(is); - + is.close(); Method reader = null; if (configSingle.getParseField() != null && !configSingle.getParseField().isEmpty()) { reader = new PropertyDescriptor(configSingle.getParseField(), aClass).getReadMethod(); diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/services/utilities/MailServiceImpl.java b/dmp-backend/web/src/main/java/eu/eudat/logic/services/utilities/MailServiceImpl.java index 0a782c6f2..3f73d4996 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/services/utilities/MailServiceImpl.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/services/utilities/MailServiceImpl.java @@ -86,6 +86,7 @@ public class MailServiceImpl implements MailService { InputStream inputStream = resource.getInputStream(); StringWriter writer = new StringWriter(); IOUtils.copy(inputStream, writer, "UTF-8"); + inputStream.close(); return writer.toString(); } catch (IOException e) { logger.error(e.getMessage(), e); diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/rda/mapper/LanguageRDAMapper.java b/dmp-backend/web/src/main/java/eu/eudat/models/rda/mapper/LanguageRDAMapper.java index 0dfe20c0e..527ffe932 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/rda/mapper/LanguageRDAMapper.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/rda/mapper/LanguageRDAMapper.java @@ -1,17 +1,16 @@ package eu.eudat.models.rda.mapper; +import com.fasterxml.jackson.databind.ObjectMapper; import eu.eudat.models.rda.Language; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.nio.charset.StandardCharsets; import java.util.HashMap; import java.util.Map; import java.util.Objects; -import java.util.stream.Collectors; public class LanguageRDAMapper { private final static Map langMap = new HashMap<>(); @@ -20,9 +19,12 @@ public class LanguageRDAMapper { static { String json = null; try { - json = new BufferedReader(new InputStreamReader(LanguageRDAMapper.class.getClassLoader().getResource("internal/rda-lang-map.json").openStream(), StandardCharsets.UTF_8)) - .lines().collect(Collectors.joining("\n")); + ObjectMapper mapper = new ObjectMapper(); + InputStreamReader isr = new InputStreamReader(LanguageRDAMapper.class.getClassLoader().getResource("internal/rda-lang-map.json").openStream(), StandardCharsets.UTF_8); + json = mapper.readValue(isr, String.class); + isr.close(); langMap.putAll(new org.json.JSONObject(json).toMap()); + } catch (IOException e) { logger.error(e.getMessage(), e); }