HADOOP-7997. SequenceFile.createWriter(...createParent...) no longer works on existing file. Contributed by Gregory Chanan

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1236456 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Eli Collins 2012-01-27 00:09:10 +00:00
parent 12289efa2b
commit c5caed914d
3 changed files with 21 additions and 1 deletions

View File

@ -292,6 +292,9 @@ Release 0.23.1 - Unreleased
HADOOP-7981. Improve documentation for org.apache.hadoop.io.compress. HADOOP-7981. Improve documentation for org.apache.hadoop.io.compress.
Decompressor.getRemaining (Jonathan Eagles via mahadev) Decompressor.getRemaining (Jonathan Eagles via mahadev)
HADOOP-7997. SequenceFile.createWriter(...createParent...) no
longer works on existing file. (Gregory Chanan via eli)
Release 0.23.0 - 2011-11-01 Release 0.23.0 - 2011-11-01
INCOMPATIBLE CHANGES INCOMPATIBLE CHANGES

View File

@ -467,7 +467,7 @@ public class SequenceFile {
Metadata metadata) throws IOException { Metadata metadata) throws IOException {
return createWriter(FileContext.getFileContext(fs.getUri(), conf), return createWriter(FileContext.getFileContext(fs.getUri(), conf),
conf, name, keyClass, valClass, compressionType, codec, conf, name, keyClass, valClass, compressionType, codec,
metadata, EnumSet.of(CreateFlag.CREATE), metadata, EnumSet.of(CreateFlag.CREATE,CreateFlag.OVERWRITE),
CreateOpts.bufferSize(bufferSize), CreateOpts.bufferSize(bufferSize),
createParent ? CreateOpts.createParent() createParent ? CreateOpts.createParent()
: CreateOpts.donotCreateParent(), : CreateOpts.donotCreateParent(),

View File

@ -517,6 +517,23 @@ public class TestSequenceFile extends TestCase {
assertTrue("InputStream for " + path + " should have been closed.", openedFile[0].isClosed()); assertTrue("InputStream for " + path + " should have been closed.", openedFile[0].isClosed());
} }
/**
* Test that makes sure createWriter succeeds on a file that was
* already created
* @throws IOException
*/
public void testCreateWriterOnExistingFile() throws IOException {
Configuration conf = new Configuration();
FileSystem fs = FileSystem.getLocal(conf);
Path name = new Path(new Path(System.getProperty("test.build.data","."),
"createWriterOnExistingFile") , "file");
fs.create(name);
SequenceFile.createWriter(fs, conf, name, RandomDatum.class,
RandomDatum.class, 512, (short) 1, 4096, false,
CompressionType.NONE, null, new Metadata());
}
public void testRecursiveSeqFileCreate() throws IOException { public void testRecursiveSeqFileCreate() throws IOException {
Configuration conf = new Configuration(); Configuration conf = new Configuration();
FileSystem fs = FileSystem.getLocal(conf); FileSystem fs = FileSystem.getLocal(conf);