[ https://issues.apache.org/jira/browse/HADOOP-6339?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Devaraj Das resolved HADOOP-6339. --------------------------------- Resolution: Invalid Hey Jonathan, this is supposed to work that way. The outputstream is supposed to be closed by the app since it was created by the app. > SequenceFile writer does not properly flush stream with external > DataOutputStream > --------------------------------------------------------------------------------- > > Key: HADOOP-6339 > URL: https://issues.apache.org/jira/browse/HADOOP-6339 > Project: Hadoop Common > Issue Type: Bug > Components: io > Affects Versions: 0.20.1 > Reporter: Jonathan Hsieh > > When using the SequenceFile.createWriter(..,FSDataOutputStream, ...) method > to create a Writer, data is not flushed when the encapsulating SequenceFile > is closed. > Example test case skeleton: > {code} > public void testWhyFail() throws IOException { > // There a was a failure case using : > Configuration conf = ... ; > Path path = new Path("file:///tmp/testfile"); > FileSystem hdfs = path.getFileSystem(conf); > // writing > FSDataOutputStream dos = hdfs.create(path); > hdfs.deleteOnExit(path); > // it is specifically with this writer. > Writer writer = SequenceFile.createWriter(conf, dos, > WriteableEventKey.class, WriteableEvent.class, > SequenceFile.CompressionType.NONE, new DefaultCodec()); > Writable value = ...; > Writable key = ...; > writer.append(key, value); > writer.sync(); > writer.close(); > // Test fails unless I close the underlying FSDataOutputStream handle > with the line below. > // dos.close(); > > // WTF: nothing written by this writer! > FileStatus stats = hdfs.getFileStatus(path); > assertTrue(stats.getLen() > 0); > // it should have written something but it failed. > } > {code} -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.