This is an automated email from the ASF dual-hosted git repository.
rgoers pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git
The following commit(s) were added to refs/heads/master by this push:
new ee39fc6a74 LOG4J2-3493 - ClassArbiter mistakenly used
SystemPropertyArbiter.Builder
ee39fc6a74 is described below
commit ee39fc6a74ee4347b08783b613c11016195d858c
Author: Ralph Goers <[email protected]>
AuthorDate: Sat May 14 12:17:37 2022 -0700
LOG4J2-3493 - ClassArbiter mistakenly used SystemPropertyArbiter.Builder
---
.../log4j/core/config/arbiters/BasicArbiterTest.java | 11 +++++++++++
log4j-core-test/src/test/resources/log4j2-arbiters.json | 14 ++++++++++++++
log4j-core-test/src/test/resources/log4j2-arbiters.xml | 8 ++++++++
.../logging/log4j/core/config/arbiters/ClassArbiter.java | 4 ++--
src/changes/changes.xml | 3 +++
5 files changed, 38 insertions(+), 2 deletions(-)
diff --git
a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/arbiters/BasicArbiterTest.java
b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/arbiters/BasicArbiterTest.java
index 63952f34e7..2e808696e3 100644
---
a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/arbiters/BasicArbiterTest.java
+++
b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/arbiters/BasicArbiterTest.java
@@ -25,6 +25,7 @@ import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
/**
@@ -60,4 +61,14 @@ public class BasicArbiterTest {
assertNotNull(app);
assertTrue(app instanceof ConsoleAppender);
}
+
+ @Test void classArbiterTest() {
+ loggerContext = Configurator.initialize(null, CONFIG);
+ assertNotNull(loggerContext);
+ Appender app =
loggerContext.getConfiguration().getAppender("ShouldExist");
+ assertNotNull(app);
+ assertTrue(app instanceof ListAppender);
+ app = loggerContext.getConfiguration().getAppender("ShouldNotExist");
+ assertNull(app);
+ }
}
diff --git a/log4j-core-test/src/test/resources/log4j2-arbiters.json
b/log4j-core-test/src/test/resources/log4j2-arbiters.json
index a080f2df5b..d3dc0d218d 100644
--- a/log4j-core-test/src/test/resources/log4j2-arbiters.json
+++ b/log4j-core-test/src/test/resources/log4j2-arbiters.json
@@ -21,6 +21,20 @@
"name": "Out"
}
}
+ ],
+ "ClassArbiter": [
+ {
+ "className":
"org.apache.logging.log4j.core.config.arbiters.ClassArbiter",
+ "List": {
+ "name": "ShouldExist"
+ }
+ },
+ {
+ "className": "org.apache.logging.log4j.core.DoesNotExist",
+ "List": {
+ "name": "ShouldNotExist"
+ }
+ }
]
},
"Loggers": {
diff --git a/log4j-core-test/src/test/resources/log4j2-arbiters.xml
b/log4j-core-test/src/test/resources/log4j2-arbiters.xml
index 2197c9baa5..e8094db441 100644
--- a/log4j-core-test/src/test/resources/log4j2-arbiters.xml
+++ b/log4j-core-test/src/test/resources/log4j2-arbiters.xml
@@ -27,6 +27,14 @@
<List name="Out">
</List>
</SystemPropertyArbiter>
+ <ClassArbiter
className="org.apache.logging.log4j.core.config.arbiters.ClassArbiter">
+ <List name="ShouldExist">
+ </List>
+ </ClassArbiter>
+ <ClassArbiter className="org.apache.logging.log4j.core.DoesNotExist">
+ <List name="ShouldNotExist">
+ </List>
+ </ClassArbiter>
</Appenders>
<Loggers>
diff --git
a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/arbiters/ClassArbiter.java
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/arbiters/ClassArbiter.java
index 0de15689c8..76c3a2b84a 100644
---
a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/arbiters/ClassArbiter.java
+++
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/arbiters/ClassArbiter.java
@@ -41,8 +41,8 @@ public class ClassArbiter implements Arbiter {
}
@PluginBuilderFactory
- public static SystemPropertyArbiter.Builder newBuilder() {
- return new SystemPropertyArbiter.Builder();
+ public static ClassArbiter.Builder newBuilder() {
+ return new ClassArbiter.Builder();
}
public static class Builder implements
org.apache.logging.log4j.core.util.Builder<ClassArbiter> {
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index c726e7f753..f68128457a 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -200,6 +200,9 @@
</release>
<release version="2.18.0" date="20YY-MM-DD" description="GA Release
2.17.3">
<!-- FIXES -->
+ <action issue="LOG4J2-3493" dev="rgoers" type="fix" due-to="Dmytro
Voloshyn">
+ ClassArbiter's newBuilder method referenced the wrong class.
+ </action>
<action issue="LOG4J2-2966" dev="rgoers" type="fix">
Initialize ContextDataFactory before the configuration is completed
thus avoiding an NPE."
</action>