Repository: logging-log4j2 Updated Branches: refs/heads/release-2.x eb28cd710 -> 5d01d299d
LOG4J2-2268 - Improve error msg if invalid value Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/34e05687 Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/34e05687 Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/34e05687 Branch: refs/heads/release-2.x Commit: 34e056872041861f22235a01c47f69db76ae8f85 Parents: eb28cd7 Author: Tilman Hausherr <[email protected]> Authored: Tue Mar 13 22:23:02 2018 +0100 Committer: Ralph Goers <[email protected]> Committed: Sun Mar 18 11:03:31 2018 -0700 ---------------------------------------------------------------------- .../log4j/core/config/plugins/util/PluginBuilder.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/34e05687/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/PluginBuilder.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/PluginBuilder.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/PluginBuilder.java index ebaabe9..443c612 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/PluginBuilder.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/PluginBuilder.java @@ -23,6 +23,7 @@ import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.lang.reflect.Modifier; +import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Map; @@ -165,6 +166,7 @@ public class PluginBuilder implements Builder<Object> { AccessibleObject.setAccessible(fields.toArray(new Field[] {}), true); final StringBuilder log = new StringBuilder(); boolean invalid = false; + String reason = ""; for (final Field field : fields) { log.append(log.length() == 0 ? simpleName(builder) + "(" : ", "); final Annotation[] annotations = field.getDeclaredAnnotations(); @@ -194,13 +196,17 @@ public class PluginBuilder implements Builder<Object> { for (final ConstraintValidator<?> validator : validators) { if (!validator.isValid(field.getName(), value)) { invalid = true; + if (!reason.isEmpty()) { + reason += ", "; + } + reason += "field '" + field.getName() + "' has invalid value '" + value + "'"; } } } log.append(log.length() == 0 ? builder.getClass().getSimpleName() + "()" : ")"); LOGGER.debug(log.toString()); if (invalid) { - throw new ConfigurationException("Arguments given for element " + node.getName() + " are invalid"); + throw new ConfigurationException("Arguments given for element " + node.getName() + " are invalid: " + reason); } checkForRemainingAttributes(); verifyNodeChildrenUsed();
