diff --git a/hadoop-common-project/hadoop-common/CHANGES.txt b/hadoop-common-project/hadoop-common/CHANGES.txt index 02baf9bfad..bcd48c4c55 100644 --- a/hadoop-common-project/hadoop-common/CHANGES.txt +++ b/hadoop-common-project/hadoop-common/CHANGES.txt @@ -187,6 +187,9 @@ Release 0.23.1 - Unreleased HADOOP-7854. UGI getCurrentUser is not synchronized. (Daryn Sharp via jitendra) + HADOOP-7870. fix SequenceFile#createWriter with boolean + createParent arg to respect createParent. (Jon Hsieh via eli) + Release 0.23.0 - 2011-11-01 INCOMPATIBLE CHANGES diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/io/TestSequenceFile.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/io/TestSequenceFile.java index af0fc3ae1d..18bc8df651 100644 --- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/io/TestSequenceFile.java +++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/io/TestSequenceFile.java @@ -26,6 +26,7 @@ import org.apache.hadoop.fs.*; import org.apache.hadoop.io.SequenceFile.CompressionType; +import org.apache.hadoop.io.SequenceFile.Metadata; import org.apache.hadoop.io.compress.CompressionCodec; import org.apache.hadoop.io.compress.DefaultCodec; import org.apache.hadoop.util.ReflectionUtils; @@ -516,6 +517,29 @@ protected FSDataInputStream openFile(FileSystem fs, Path file, int bufferSize, l assertTrue("InputStream for " + path + " should have been closed.", openedFile[0].isClosed()); } + public void testRecursiveSeqFileCreate() throws IOException { + Configuration conf = new Configuration(); + FileSystem fs = FileSystem.getLocal(conf); + Path name = new Path(new Path(System.getProperty("test.build.data","."), + "recursiveCreateDir") , "file"); + boolean createParent = false; + + try { + SequenceFile.createWriter(fs, conf, name, RandomDatum.class, + RandomDatum.class, 512, (short) 1, 4096, createParent, + CompressionType.NONE, null, new Metadata()); + fail("Expected an IOException due to missing parent"); + } catch (IOException ioe) { + // Expected + } + + createParent = true; + SequenceFile.createWriter(fs, conf, name, RandomDatum.class, + RandomDatum.class, 512, (short) 1, 4096, createParent, + CompressionType.NONE, null, new Metadata()); + // should succeed, fails if exception thrown + } + /** For debugging and testing. */ public static void main(String[] args) throws Exception { int count = 1024 * 1024;