[ https://issues.apache.org/jira/browse/HADOOP-7870?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Eli Collins updated HADOOP-7870: -------------------------------- Target Version/s: 0.23.1 > fix SequenceFile#createWriter with boolean createParent arg to respect > createParent. > ------------------------------------------------------------------------------------ > > Key: HADOOP-7870 > URL: https://issues.apache.org/jira/browse/HADOOP-7870 > Project: Hadoop Common > Issue Type: Bug > Affects Versions: 1.0.0 > Reporter: Jonathan Hsieh > Assignee: Jonathan Hsieh > Fix For: 1.1.0 > > Attachments: hadoop-7870-1.patch, hadoop-7870.patch, hadoop-7870.patch > > > After HBASE-6840, one set of calls to createNonRecursive(...) seems fishy - > the new boolean createParent variable from the signature isn't used at all. > {code} > + public static Writer > + createWriter(FileSystem fs, Configuration conf, Path name, > + Class keyClass, Class valClass, int bufferSize, > + short replication, long blockSize, boolean createParent, > + CompressionType compressionType, CompressionCodec codec, > + Metadata metadata) throws IOException { > + if ((codec instanceof GzipCodec) && > + !NativeCodeLoader.isNativeCodeLoaded() && > + !ZlibFactory.isNativeZlibLoaded(conf)) { > + throw new IllegalArgumentException("SequenceFile doesn't work with " + > + "GzipCodec without native-hadoop > code!"); > + } > + > + switch (compressionType) { > + case NONE: > + return new Writer(conf, > + fs.createNonRecursive(name, true, bufferSize, replication, > blockSize, null), > + keyClass, valClass, metadata).ownStream(); > + case RECORD: > + return new RecordCompressWriter(conf, > + fs.createNonRecursive(name, true, bufferSize, replication, > blockSize, null), > + keyClass, valClass, codec, metadata).ownStream(); > + case BLOCK: > + return new BlockCompressWriter(conf, > + fs.createNonRecursive(name, true, bufferSize, replication, > blockSize, null), > + keyClass, valClass, codec, metadata).ownStream(); > + default: > + return null; > + } > + } > + > {code} > Nicolas Spiegelberg suggests changing it to > {code} > if (createParent) { use fs.create() } > else { use fs.createNonRecursive(); } > {code} -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira