diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/io/TextIO.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/io/TextIO.java index 02ecc9e309062..e7f47850a8201 100644 --- a/sdks/java/core/src/main/java/org/apache/beam/sdk/io/TextIO.java +++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/io/TextIO.java @@ -1318,7 +1318,8 @@ public void flush() throws IOException { if (getFooter() != null) { writer.println(getFooter()); } - writer.close(); + // BEAM-7813: don't close writer here + writer.flush(); } } diff --git a/sdks/java/io/parquet/src/main/java/org/apache/beam/sdk/io/parquet/ParquetIO.java b/sdks/java/io/parquet/src/main/java/org/apache/beam/sdk/io/parquet/ParquetIO.java index 24ee48a6fe38a..499d12989a0fb 100644 --- a/sdks/java/io/parquet/src/main/java/org/apache/beam/sdk/io/parquet/ParquetIO.java +++ b/sdks/java/io/parquet/src/main/java/org/apache/beam/sdk/io/parquet/ParquetIO.java @@ -316,6 +316,7 @@ public void write(GenericRecord element) throws IOException { @Override public void flush() throws IOException { + // the only way to completely flush the output is to call writer.close() here writer.close(); } diff --git a/sdks/java/io/xml/src/main/java/org/apache/beam/sdk/io/xml/XmlIO.java b/sdks/java/io/xml/src/main/java/org/apache/beam/sdk/io/xml/XmlIO.java index cb24ca4c77c35..97da11c9a012d 100644 --- a/sdks/java/io/xml/src/main/java/org/apache/beam/sdk/io/xml/XmlIO.java +++ b/sdks/java/io/xml/src/main/java/org/apache/beam/sdk/io/xml/XmlIO.java @@ -680,6 +680,7 @@ public void write(T element) throws IOException { @Override public void flush() throws IOException { outputStream.write(("\n").getBytes(Charset.forName(getCharset()))); + outputStream.flush(); } } }