Repository: logging-log4j2 Updated Branches: refs/heads/master 187e7139a -> 334667c7a
LOG4J2-2060 AbstractDatabaseManager should make a copy of LogEvents before holding references to them: AsyncLogger log events are mutable Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/334667c7 Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/334667c7 Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/334667c7 Branch: refs/heads/master Commit: 334667c7acc2955e157572bfa3b8d0272a8f1495 Parents: 187e713 Author: rpopma <[email protected]> Authored: Sun Oct 15 22:34:53 2017 +0900 Committer: rpopma <[email protected]> Committed: Sun Oct 15 22:34:53 2017 +0900 ---------------------------------------------------------------------- .../logging/log4j/core/appender/db/AbstractDatabaseManager.java | 2 +- src/changes/changes.xml | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/334667c7/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/db/AbstractDatabaseManager.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/db/AbstractDatabaseManager.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/db/AbstractDatabaseManager.java index c36c4d8..b8b9899 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/db/AbstractDatabaseManager.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/db/AbstractDatabaseManager.java @@ -162,7 +162,7 @@ public abstract class AbstractDatabaseManager extends AbstractManager implements */ public final synchronized void write(final LogEvent event) { if (this.bufferSize > 0) { - this.buffer.add(event); + this.buffer.add(event.toImmutable()); if (this.buffer.size() >= this.bufferSize || event.isEndOfBatch()) { this.flush(); } http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/334667c7/src/changes/changes.xml ---------------------------------------------------------------------- diff --git a/src/changes/changes.xml b/src/changes/changes.xml index 296cc47..1ea3464 100644 --- a/src/changes/changes.xml +++ b/src/changes/changes.xml @@ -56,6 +56,9 @@ <action issue="LOG4J2-2052" dev="rpopma" type="update"> Disable thread name caching by default when running on Java 8u102 or later. </action> + <action issue="LOG4J2-2060" dev="rpopma" type="fix"> + AbstractDatabaseManager should make a copy of LogEvents before holding references to them: AsyncLogger log events are mutable. + </action> <action issue="LOG4J2-2055" dev="rgoers" type="fix"> If Log4j is used as the Tomcat logging implementation startup might fail if an application also uses Log4j. </action>
