Class AutoFlushingObjectWriter

java.lang.Object
ch.qos.logback.core.net.AutoFlushingObjectWriter
All Implemented Interfaces:
ObjectWriter

public class AutoFlushingObjectWriter extends Object implements ObjectWriter
Automatically flushes the underlying ObjectOutputStream immediately after calling it's ObjectOutputStream.writeObject(Object) method.
  • Field Details

    • objectOutputStream

      private final ObjectOutputStream objectOutputStream
    • resetFrequency

      private final int resetFrequency
    • writeCounter

      private int writeCounter
  • Constructor Details

    • AutoFlushingObjectWriter

      public AutoFlushingObjectWriter(ObjectOutputStream objectOutputStream, int resetFrequency)
      Creates a new instance for the given ObjectOutputStream.
      Parameters:
      objectOutputStream - the stream to write to
      resetFrequency - the frequency with which the given stream will be automatically reset to prevent a memory leak
  • Method Details

    • write

      public void write(Object object) throws IOException
      Description copied from interface: ObjectWriter
      Writes an object to an output.
      Specified by:
      write in interface ObjectWriter
      Parameters:
      object - the Object to write
      Throws:
      IOException - in case input/output fails, details are defined by the implementation
    • preventMemoryLeak

      private void preventMemoryLeak() throws IOException
      Failing to reset the object output stream every now and then creates a serious memory leak which is why the underlying stream will be reset according to the resetFrequency.
      Throws:
      IOException