You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by rp...@apache.org on 2017/10/15 13:35:08 UTC

logging-log4j2 git commit: LOG4J2-2060 AbstractDatabaseManager should make a copy of LogEvents before holding references to them: AsyncLogger log events are mutable

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 <rp...@apache.org>
Authored: Sun Oct 15 22:34:53 2017 +0900
Committer: rpopma <rp...@apache.org>
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>