aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Tananaev <anton.tananaev@gmail.com>2018-02-25 11:06:13 +1300
committerAnton Tananaev <anton.tananaev@gmail.com>2018-02-25 11:06:13 +1300
commitab140373b6b44fff114dca2211c802361539933d (patch)
tree49cda2df58c3fd7189168c6b7d90e3e38560fa20
parent55f2a2704e48636ba4b25e30d6a5f7bc6542920e (diff)
downloadtraccar-server-ab140373b6b44fff114dca2211c802361539933d.tar.gz
traccar-server-ab140373b6b44fff114dca2211c802361539933d.tar.bz2
traccar-server-ab140373b6b44fff114dca2211c802361539933d.zip
Improve config file error handling
-rw-r--r--src/org/traccar/Config.java29
1 files changed, 17 insertions, 12 deletions
diff --git a/src/org/traccar/Config.java b/src/org/traccar/Config.java
index 43f4632da..370123ae1 100644
--- a/src/org/traccar/Config.java
+++ b/src/org/traccar/Config.java
@@ -18,6 +18,7 @@ package org.traccar;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
+import java.util.InvalidPropertiesFormatException;
import java.util.Properties;
public class Config {
@@ -27,22 +28,26 @@ public class Config {
private boolean useEnvironmentVariables;
void load(String file) throws IOException {
- Properties mainProperties = new Properties();
- try (InputStream inputStream = new FileInputStream(file)) {
- mainProperties.loadFromXML(inputStream);
- }
+ try {
+ Properties mainProperties = new Properties();
+ try (InputStream inputStream = new FileInputStream(file)) {
+ mainProperties.loadFromXML(inputStream);
+ }
- String defaultConfigFile = mainProperties.getProperty("config.default");
- if (defaultConfigFile != null) {
- try (InputStream inputStream = new FileInputStream(defaultConfigFile)) {
- properties.loadFromXML(inputStream);
+ String defaultConfigFile = mainProperties.getProperty("config.default");
+ if (defaultConfigFile != null) {
+ try (InputStream inputStream = new FileInputStream(defaultConfigFile)) {
+ properties.loadFromXML(inputStream);
+ }
}
- }
- properties.putAll(mainProperties); // override defaults
+ properties.putAll(mainProperties); // override defaults
- useEnvironmentVariables = Boolean.parseBoolean(System.getenv("CONFIG_USE_ENVIRONMENT_VARIABLES"))
- || Boolean.parseBoolean(properties.getProperty("config.useEnvironmentVariables"));
+ useEnvironmentVariables = Boolean.parseBoolean(System.getenv("CONFIG_USE_ENVIRONMENT_VARIABLES"))
+ || Boolean.parseBoolean(properties.getProperty("config.useEnvironmentVariables"));
+ } catch (InvalidPropertiesFormatException e) {
+ throw new RuntimeException("Configuration file is not a valid XML document", e);
+ }
}
public boolean hasKey(String key) {