LOG4J2-1292 bugfix in RollingRandomAccessFileManager: since the
write(bytes[], ...) method is no longer called, track file size in
flush()

Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/cbd191c4
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/cbd191c4
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/cbd191c4

Branch: refs/heads/LOG4J2-1278-gc-free-logger
Commit: cbd191c43a7032bedb6c2067a7e9bc0662e7e364
Parents: ccedadf
Author: rpopma <[email protected]>
Authored: Mon Feb 22 02:49:39 2016 +0900
Committer: rpopma <[email protected]>
Committed: Mon Feb 22 02:49:39 2016 +0900

----------------------------------------------------------------------
 .../logging/log4j/core/appender/rolling/RollingFileManager.java   | 2 +-
 .../core/appender/rolling/RollingRandomAccessFileManager.java     | 3 +--
 2 files changed, 2 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/cbd191c4/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingFileManager.java
----------------------------------------------------------------------
diff --git 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingFileManager.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingFileManager.java
index fc77a98..9e5d203 100644
--- 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingFileManager.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingFileManager.java
@@ -41,7 +41,7 @@ public class RollingFileManager extends FileManager {
 
     private static RollingFileManagerFactory factory = new 
RollingFileManagerFactory();
 
-    private long size;
+    protected long size;
     private long initialTime;
     private final PatternProcessor patternProcessor;
     private final Semaphore semaphore = new Semaphore(1);

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/cbd191c4/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingRandomAccessFileManager.java
----------------------------------------------------------------------
diff --git 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingRandomAccessFileManager.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingRandomAccessFileManager.java
index d436c2a..090be46 100644
--- 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingRandomAccessFileManager.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingRandomAccessFileManager.java
@@ -96,8 +96,6 @@ public class RollingRandomAccessFileManager extends 
RollingFileManager implement
 
     @Override
     protected synchronized void write(final byte[] bytes, int offset, int 
length, final boolean immediateFlush) {
-        super.write(bytes, offset, length, immediateFlush); // writes to dummy 
output stream, needed to track file size
-
         int chunk = 0;
         do {
             if (length > buffer.remaining()) {
@@ -128,6 +126,7 @@ public class RollingRandomAccessFileManager extends 
RollingFileManager implement
         buffer.flip();
         try {
             randomAccessFile.write(buffer.array(), 0, buffer.limit());
+            size += buffer.limit(); // track file size
         } catch (final IOException ex) {
             final String msg = "Error writing to RandomAccessFile " + 
getName();
             throw new AppenderLoggingException(msg, ex);

Reply via email to