LOG4J2-1206 - org.apache.logging.log4j.core.LoggerContext#updateLoggers should call firePropertyChangeEvent
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/2ccf95d7 Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/2ccf95d7 Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/2ccf95d7 Branch: refs/heads/LOG4J2-1278-gc-free-logger Commit: 2ccf95d7c4696f19e23749188bb16578456a4be8 Parents: c6318b6 Author: Matt Sicker <[email protected]> Authored: Tue Mar 8 11:37:32 2016 -0600 Committer: Matt Sicker <[email protected]> Committed: Tue Mar 8 11:37:32 2016 -0600 ---------------------------------------------------------------------- .../org/apache/logging/log4j/core/LoggerContext.java | 2 ++ .../apache/logging/log4j/core/LoggerUpdateTest.java | 15 +++++++++++++++ src/changes/changes.xml | 3 +++ 3 files changed, 20 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/2ccf95d7/log4j-core/src/main/java/org/apache/logging/log4j/core/LoggerContext.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/LoggerContext.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/LoggerContext.java index cb78fe4..3937805 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/LoggerContext.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/LoggerContext.java @@ -595,9 +595,11 @@ public class LoggerContext extends AbstractLifeCycle implements org.apache.loggi * @param config The Configuration. */ public void updateLoggers(final Configuration config) { + final Configuration old = this.configuration; for (final Logger logger : loggers.values()) { logger.updateConfiguration(config); } + firePropertyChangeEvent(new PropertyChangeEvent(this, PROPERTY_CONFIG, old, config)); } /** http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/2ccf95d7/log4j-core/src/test/java/org/apache/logging/log4j/core/LoggerUpdateTest.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/LoggerUpdateTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/LoggerUpdateTest.java index fd9b0b0..eb698ab 100644 --- a/log4j-core/src/test/java/org/apache/logging/log4j/core/LoggerUpdateTest.java +++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/LoggerUpdateTest.java @@ -16,6 +16,8 @@ */ package org.apache.logging.log4j.core; +import java.beans.PropertyChangeEvent; +import java.beans.PropertyChangeListener; import java.util.List; import org.apache.logging.log4j.*; @@ -64,5 +66,18 @@ public class LoggerUpdateTest { events = app.getEvents(); assertEquals("Incorrect number of events. Expected 0, actual " + events.size(), 0, events.size()); } + + @Test + public void testUpdateLoggersPropertyListeners() throws Exception { + final LoggerContext ctx = context.getContext(); + ctx.addPropertyChangeListener(new PropertyChangeListener() { + @Override + public void propertyChange(final PropertyChangeEvent evt) { + assertEquals(LoggerContext.PROPERTY_CONFIG, evt.getPropertyName()); + assertSame(ctx, evt.getSource()); + } + }); + ctx.updateLoggers(); + } } http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/2ccf95d7/src/changes/changes.xml ---------------------------------------------------------------------- diff --git a/src/changes/changes.xml b/src/changes/changes.xml index 1313ac9..1895b0f 100644 --- a/src/changes/changes.xml +++ b/src/changes/changes.xml @@ -208,6 +208,9 @@ <action issue="LOG4J2-1310" dev="mattsicker" type="fix"> JndiLookup mindlessly casts to String and should use String.valueOf(). </action> + <action issue="LOG4J2-1206" dev="mattsicker" type="update"> + org.apache.logging.log4j.core.LoggerContext#updateLoggers should call firePropertyChangeEvent. + </action> </release> <release version="2.5" date="2015-12-06" description="GA Release 2.5"> <action issue="LOG4J2-324" dev="rpopma" type="fix">
