From 743f240d478b931b34c20b26933220d727cebbc9 Mon Sep 17 00:00:00 2001 From: vgolub Date: Fri, 7 Sep 2018 20:25:46 +0300 Subject: [PATCH] Do not pass Path object as exception argument --- .../main/java/com/typesafe/config/ConfigException.java | 8 ++------ config/src/main/java/com/typesafe/config/impl/Path.java | 4 ++-- .../main/java/com/typesafe/config/impl/SimpleConfig.java | 2 +- 3 files changed, 5 insertions(+), 9 deletions(-) diff --git a/config/src/main/java/com/typesafe/config/ConfigException.java b/config/src/main/java/com/typesafe/config/ConfigException.java index f781b375..f35e8dbe 100644 --- a/config/src/main/java/com/typesafe/config/ConfigException.java +++ b/config/src/main/java/com/typesafe/config/ConfigException.java @@ -8,7 +8,6 @@ import java.io.Serializable; import java.lang.reflect.Field; import com.typesafe.config.impl.ConfigImplUtil; -import com.typesafe.config.impl.Path; /** * All exceptions thrown by the library are subclasses of @@ -127,8 +126,8 @@ public abstract class ConfigException extends RuntimeException implements Serial cause); } - public Missing(ConfigOrigin origin, Path path) { - this(origin, "No configuration setting found for key '" + path.render() + "'"); + public Missing(ConfigOrigin origin, String path) { + this(origin, "No configuration setting found for key '" + path + "'", null); } public Missing(String path) { @@ -139,9 +138,6 @@ public abstract class ConfigException extends RuntimeException implements Serial super(origin, message, cause); } - protected Missing(ConfigOrigin origin, String message) { - this(origin, message, null); - } } /** diff --git a/config/src/main/java/com/typesafe/config/impl/Path.java b/config/src/main/java/com/typesafe/config/impl/Path.java index 1e0fd747..d39a57c6 100644 --- a/config/src/main/java/com/typesafe/config/impl/Path.java +++ b/config/src/main/java/com/typesafe/config/impl/Path.java @@ -7,7 +7,7 @@ import java.util.*; import com.typesafe.config.ConfigException; -public final class Path { +final class Path { final private String first; final private Path remainder; @@ -216,7 +216,7 @@ public final class Path { * toString() is a debugging-oriented version while this is an * error-message-oriented human-readable one. */ - public String render() { + String render() { StringBuilder sb = new StringBuilder(); appendToStringBuilder(sb); return sb.toString(); diff --git a/config/src/main/java/com/typesafe/config/impl/SimpleConfig.java b/config/src/main/java/com/typesafe/config/impl/SimpleConfig.java index 308d14ca..c0d6b65c 100644 --- a/config/src/main/java/com/typesafe/config/impl/SimpleConfig.java +++ b/config/src/main/java/com/typesafe/config/impl/SimpleConfig.java @@ -153,7 +153,7 @@ final class SimpleConfig implements Config, MergeableValue, Serializable { ConfigValueType expected, Path originalPath) { AbstractConfigValue v = self.peekAssumingResolved(key, originalPath); if (v == null) - throw new ConfigException.Missing(self.origin(), originalPath); + throw new ConfigException.Missing(self.origin(), originalPath.render()); if (expected != null) v = DefaultTransformer.transform(v, expected);