You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by ma...@apache.org on 2014/09/14 07:01:26 UTC

[08/15] git commit: Only use plugin visitor value if non-null.

Only use plugin visitor value if non-null.

  - Makes behavior in factory method version match up better with builder class version.
  - Allows for multiple annotations on a single item where only one of them may return a value (e.g., for LOG4J2-825).


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/73a12aa3
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/73a12aa3
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/73a12aa3

Branch: refs/heads/master
Commit: 73a12aa34d4494f87df6a03a6465c020f54a777e
Parents: 6ce4687
Author: Matt Sicker <ma...@apache.org>
Authored: Sat Sep 13 19:56:01 2014 -0500
Committer: Matt Sicker <ma...@apache.org>
Committed: Sat Sep 13 19:56:01 2014 -0500

----------------------------------------------------------------------
 .../logging/log4j/core/config/plugins/util/PluginBuilder.java  | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/73a12aa3/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 ba84690..08a85ff 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
@@ -225,12 +225,16 @@ public class PluginBuilder<T> implements Builder<T> {
                 final PluginVisitor<? extends Annotation> visitor = PluginVisitors.findVisitor(
                     a.annotationType());
                 if (visitor != null) {
-                    args[i] = visitor.setAliases(aliases)
+                    final Object value = visitor.setAliases(aliases)
                         .setAnnotation(a)
                         .setConversionType(types[i])
                         .setStrSubstitutor(configuration.getStrSubstitutor())
                         .setMember(factory)
                         .visit(configuration, node, event, log);
+                    // don't overwrite existing values if the visitor gives us no value to inject
+                    if (value != null) {
+                        args[i] = value;
+                    }
                 }
             }
         }