From 2ae8e1571be7ef5c665d43c571ad0b2ca6d9a826 Mon Sep 17 00:00:00 2001 From: Zhangmei Li Date: Thu, 1 Feb 2018 17:07:17 +0800 Subject: [PATCH] HugeGraph-1097: fix missing check for duplicated options Change-Id: I542998a0024d83706b0d8c485b4ec8ef40fd310f --- pom.xml | 2 +- .../baidu/hugegraph/config/HugeConfig.java | 31 ++++++++----------- 2 files changed, 14 insertions(+), 19 deletions(-) diff --git a/pom.xml b/pom.xml index 875b870bf..c26d31643 100644 --- a/pom.xml +++ b/pom.xml @@ -156,7 +156,7 @@ - 1.3.12.0 + 1.3.12.1 diff --git a/src/main/java/com/baidu/hugegraph/config/HugeConfig.java b/src/main/java/com/baidu/hugegraph/config/HugeConfig.java index 211c54945..4634cdbc3 100644 --- a/src/main/java/com/baidu/hugegraph/config/HugeConfig.java +++ b/src/main/java/com/baidu/hugegraph/config/HugeConfig.java @@ -20,8 +20,6 @@ package com.baidu.hugegraph.config; import java.io.File; -import java.io.InputStream; -import java.io.InputStreamReader; import java.util.Iterator; import java.util.List; @@ -61,26 +59,23 @@ public class HugeConfig extends PropertiesConfiguration { } public HugeConfig(String configFile) throws ConfigurationException { - super(loadConfigFile(configFile)); - this.checkRequiredOptions(); + this(loadConfigFile(configFile)); } - public HugeConfig(InputStream is) throws ConfigurationException { - E.checkNotNull(is, "config input stream"); - this.load(new InputStreamReader(is)); - this.checkRequiredOptions(); - } + private static PropertiesConfiguration loadConfigFile(String path) { + E.checkNotNull(path, "config path"); + E.checkArgument(!path.isEmpty(), + "The config path can't be empty"); - private static File loadConfigFile(String fileName) { - E.checkNotNull(fileName, "config file"); - E.checkArgument(!fileName.isEmpty(), - "The config file can't be empty"); - - File file = new File(fileName); + File file = new File(path); E.checkArgument(file.exists() && file.isFile() && file.canRead(), - "Need to specify a readable config file, but got: %s", + "Need to specify a readable config, but got: %s", file.toString()); - return file; + try { + return new PropertiesConfiguration(file); + } catch (ConfigurationException e) { + throw new ConfigException("Unable to load config: %s", e, path); + } } @SuppressWarnings("unchecked") @@ -103,7 +98,7 @@ public class HugeConfig extends PropertiesConfiguration { private Object validateOption(String key, Object value) { E.checkArgument(value instanceof String, - "Invalid value for key '%s'", key); + "Invalid value for key '%s': %s", key, value); ConfigOption option = OptionSpace.get(key); Class dataType = option.dataType();