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;
+ }
}
}
}