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>

Reply via email to