Description
FastFileManager#flush method needs to be synchronized.
I'm seeing the exception below. This can only happen if two threads modify the ByteBuffer simultaneously.
2013-07-17 19:00:29,033 ERROR An exception occurred processing Appender LatencyFile java.lang.IllegalArgumentException at java.nio.Buffer.position(Buffer.java:236) at java.nio.HeapByteBuffer.put(HeapByteBuffer.java:185) at org.apache.logging.log4j.core.appender.FastFileManager.write(FastFileManager.java:96) at org.apache.logging.log4j.core.appender.OutputStreamManager.write(OutputStreamManager.java:129) at org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.append(AbstractOutputStreamAppender.java:115) at org.apache.logging.log4j.core.appender.FastFileAppender.append(FastFileAppender.java:87) at org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:102) at org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(LoggerConfig.java:426) at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:407) at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:368) at org.apache.logging.log4j.core.Logger.log(Logger.java:110) at org.apache.logging.log4j.spi.AbstractLogger.info(AbstractLogger.java:1011) at ...