Repository: logging-log4j2
Updated Branches:
  refs/heads/master af12af4ca -> d4cbbfa5d


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/7002fb55
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/7002fb55
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/7002fb55

Branch: refs/heads/master
Commit: 7002fb555e6254adae1dedb552aba0345df78f4c
Parents: af12af4
Author: Tilman Hausherr <[email protected]>
Authored: Tue Mar 13 22:23:02 2018 +0100
Committer: Ralph Goers <[email protected]>
Committed: Sun Mar 18 11:10:13 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/7002fb55/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();

Reply via email to