You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by mi...@apache.org on 2016/04/10 10:12:39 UTC
[3/8] logging-log4j2 git commit: LOG4J2-1343 do not synchronize on
the appender Manager while converting the LogEvent to text: this may result
in deadlocks
LOG4J2-1343 do not synchronize on the appender Manager while converting the LogEvent to text: this may result in deadlocks
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/794af49a
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/794af49a
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/794af49a
Branch: refs/heads/LOG4J2-1356
Commit: 794af49a6f1ec1970c605bca04a38251684ab262
Parents: acf8e34
Author: rpopma <rp...@apache.org>
Authored: Fri Apr 8 19:50:31 2016 +0900
Committer: rpopma <rp...@apache.org>
Committed: Fri Apr 8 19:50:31 2016 +0900
----------------------------------------------------------------------
.../core/appender/AbstractOutputStreamAppender.java | 14 ++++++--------
1 file changed, 6 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/794af49a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AbstractOutputStreamAppender.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AbstractOutputStreamAppender.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AbstractOutputStreamAppender.java
index dcd0556..85faf43 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AbstractOutputStreamAppender.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AbstractOutputStreamAppender.java
@@ -122,14 +122,12 @@ public abstract class AbstractOutputStreamAppender<M extends OutputStreamManager
}
protected void directEncodeEvent(final LogEvent event) {
- synchronized (manager) {
- getLayout().encode(event, manager.getByteBufferDestination());
- if (!manager.isBufferedIO()) { // buffering was not requested by the user
- manager.flushBuffer(); // we're not allowed to leave anything in the buffer: drain buffer into manager
- }
- if (this.immediateFlush || event.isEndOfBatch()) {
- manager.flush();
- }
+ getLayout().encode(event, manager.getByteBufferDestination());
+ if (!manager.isBufferedIO()) { // buffering was not requested by the user
+ manager.flushBuffer(); // we're not allowed to leave anything in the buffer: drain buffer into manager
+ }
+ if (this.immediateFlush || event.isEndOfBatch()) {
+ manager.flush();
}
}