From e072a55af6d1f9d05f01d0dc34a26697a3416ed7 Mon Sep 17 00:00:00 2001 From: Levente Gal <62599627+leventegal-she@users.noreply.github.com> Date: Tue, 9 Nov 2021 09:32:05 +0200 Subject: [PATCH] #4201 Errors repeatedly logged for minor configuration issues (#7067) --- .../backend/common/ConfigFacadeEjb.java | 46 +++++++++---------- 1 file changed, 21 insertions(+), 25 deletions(-) diff --git a/sormas-backend/src/main/java/de/symeda/sormas/backend/common/ConfigFacadeEjb.java b/sormas-backend/src/main/java/de/symeda/sormas/backend/common/ConfigFacadeEjb.java index a20e588d775..7a57666823e 100644 --- a/sormas-backend/src/main/java/de/symeda/sormas/backend/common/ConfigFacadeEjb.java +++ b/sormas-backend/src/main/java/de/symeda/sormas/backend/common/ConfigFacadeEjb.java @@ -19,6 +19,7 @@ import java.util.Locale; import java.util.Map; import java.util.Properties; +import java.util.function.Function; import java.util.regex.Pattern; import java.util.stream.Collectors; @@ -181,44 +182,39 @@ protected String getProperty(String name, String defaultValue) { } } - protected boolean getBoolean(String name, boolean defaultValue) { + private T parseProperty(String propertyName, T defaultValue, Function parse) { - try { - return Boolean.parseBoolean(getProperty(name, Boolean.toString(defaultValue))); - } catch (Exception e) { - logger.error("Could not parse boolean value of property '" + name + "': " + e.getMessage()); + String prop = props.getProperty(propertyName); + if (prop == null) { return defaultValue; } - } - - protected double getDouble(String name, double defaultValue) { try { - return Double.parseDouble(getProperty(name, Double.toString(defaultValue))); + if (prop.isEmpty()) { + logger.debug("The property '" + propertyName + "' is set to empty value"); + } + + return parse.apply(prop); } catch (Exception e) { - logger.error("Could not parse numeric value of property '" + name + "': " + e.getMessage()); + logger.error("Could not parse value of property '" + propertyName + "': " + e.getMessage()); return defaultValue; } } - protected int getInt(String name, int defaultValue) { + protected boolean getBoolean(String name, boolean defaultValue) { + return parseProperty(name, defaultValue, Boolean::parseBoolean); + } - try { - return Integer.parseInt(getProperty(name, Integer.toString(defaultValue))); - } catch (Exception e) { - logger.error("Could not parse integer value of property '" + name + "': " + e.getMessage()); - return defaultValue; - } + protected double getDouble(String name, double defaultValue) { + return parseProperty(name, defaultValue, Double::parseDouble); } - protected long getLong(String name, int defaultValue) { + protected int getInt(String name, int defaultValue) { + return parseProperty(name, defaultValue, Integer::parseInt); + } - try { - return Long.parseLong(getProperty(name, Long.toString(defaultValue))); - } catch (Exception e) { - logger.error("Could not parse long value of property '" + name + "': " + e.getMessage()); - return defaultValue; - } + protected long getLong(String name, long defaultValue) { + return parseProperty(name, defaultValue, Long::parseLong); } @Override @@ -226,7 +222,7 @@ public String getCountryName() { String countryName = getProperty(COUNTRY_NAME, ""); if (countryName.isEmpty()) { - logger.info("No country name is specified in sormas.properties."); + logger.debug("No country name is specified in sormas.properties."); } return new String(countryName.getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8); }