You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avro.apache.org by "mukesh katariya (JIRA)" <ji...@apache.org> on 2018/04/06 13:46:00 UTC

[jira] [Created] (AVRO-2169) Flushing of output stream in DataFileWriter#BufferedFileOutputStream out

mukesh katariya created AVRO-2169:
-------------------------------------

             Summary: Flushing of output stream in DataFileWriter<D>#BufferedFileOutputStream out
                 Key: AVRO-2169
                 URL: https://issues.apache.org/jira/browse/AVRO-2169
             Project: Avro
          Issue Type: Improvement
          Components: java
    Affects Versions: 1.8.2
            Reporter: mukesh katariya
             Fix For: 1.8.2


Hi

I am looking a the code of DataFileWriter inside the package org.apache.avro.file.

private BufferedFileOutputStream out; we use the out stream.

when the close method is called this stream is not flushed.
{code:java}
  /** Return the current position as a value that may be passed to {@link
   * DataFileReader#seek(long)}.  Forces the end of the current block,
   * emitting a synchronization marker. By default, this will also flush the
   * block to the stream.
   *
   * If {@linkplain #setFlushOnEveryBlock(boolean)} is
   * called with param set to false, then this method may not flush
   * the block. In this case, the {@linkplain #flush()} must be called to
   * flush the stream.
   */
  public long sync() throws IOException {
    assertOpen();
    writeBlock();
    return out.tell();
  }

  /** Calls {@linkplain #sync()} and then flushes the current state of the
   * file.
   */
  @Override
  public void flush() throws IOException {
    sync();
    vout.flush();
  }
{code}
Can this lead to potential issues?



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)