HADOOP-12831. LocalFS/FSOutputSummer NPEs in constructor if bytes per checksum set to 0 (Mingliang Liu via gtcarrera9)
(cherry-picked from commit 7545ce6636
)
This commit is contained in:
parent
6218008591
commit
8324199e5c
|
@ -56,6 +56,9 @@ Release 2.8.0 - UNRELEASED
|
||||||
|
|
||||||
IMPROVEMENTS
|
IMPROVEMENTS
|
||||||
|
|
||||||
|
HADOOP-12831. LocalFS/FSOutputSummer NPEs in constructor if bytes per checksum
|
||||||
|
set to 0 (Mingliang Liu via gtcarrera9)
|
||||||
|
|
||||||
HADOOP-12458. Retries is typoed to spell Retires in parts of
|
HADOOP-12458. Retries is typoed to spell Retires in parts of
|
||||||
hadoop-yarn and hadoop-common
|
hadoop-yarn and hadoop-common
|
||||||
(Neelesh Srinivas Salian via harsh)
|
(Neelesh Srinivas Salian via harsh)
|
||||||
|
|
|
@ -25,6 +25,7 @@ import java.io.InputStream;
|
||||||
import java.nio.channels.ClosedChannelException;
|
import java.nio.channels.ClosedChannelException;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
|
||||||
|
import com.google.common.base.Preconditions;
|
||||||
import org.apache.hadoop.classification.InterfaceAudience;
|
import org.apache.hadoop.classification.InterfaceAudience;
|
||||||
import org.apache.hadoop.classification.InterfaceStability;
|
import org.apache.hadoop.classification.InterfaceStability;
|
||||||
import org.apache.hadoop.conf.Configuration;
|
import org.apache.hadoop.conf.Configuration;
|
||||||
|
@ -61,6 +62,9 @@ public abstract class ChecksumFileSystem extends FilterFileSystem {
|
||||||
if (conf != null) {
|
if (conf != null) {
|
||||||
bytesPerChecksum = conf.getInt(LocalFileSystemConfigKeys.LOCAL_FS_BYTES_PER_CHECKSUM_KEY,
|
bytesPerChecksum = conf.getInt(LocalFileSystemConfigKeys.LOCAL_FS_BYTES_PER_CHECKSUM_KEY,
|
||||||
LocalFileSystemConfigKeys.LOCAL_FS_BYTES_PER_CHECKSUM_DEFAULT);
|
LocalFileSystemConfigKeys.LOCAL_FS_BYTES_PER_CHECKSUM_DEFAULT);
|
||||||
|
Preconditions.checkState(bytesPerChecksum > 0,
|
||||||
|
"bytes per checksum should be positive but was %s",
|
||||||
|
bytesPerChecksum);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -228,6 +228,29 @@ public class TestChecksumFileSystem {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testSetConf() {
|
||||||
|
Configuration conf = new Configuration();
|
||||||
|
|
||||||
|
conf.setInt(LocalFileSystemConfigKeys.LOCAL_FS_BYTES_PER_CHECKSUM_KEY, 0);
|
||||||
|
try {
|
||||||
|
localFs.setConf(conf);
|
||||||
|
fail("Should have failed because zero bytes per checksum is invalid");
|
||||||
|
} catch (IllegalStateException ignored) {
|
||||||
|
}
|
||||||
|
|
||||||
|
conf.setInt(LocalFileSystemConfigKeys.LOCAL_FS_BYTES_PER_CHECKSUM_KEY, -1);
|
||||||
|
try {
|
||||||
|
localFs.setConf(conf);
|
||||||
|
fail("Should have failed because negative bytes per checksum is invalid");
|
||||||
|
} catch (IllegalStateException ignored) {
|
||||||
|
}
|
||||||
|
|
||||||
|
conf.setInt(LocalFileSystemConfigKeys.LOCAL_FS_BYTES_PER_CHECKSUM_KEY, 512);
|
||||||
|
localFs.setConf(conf);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
void verifyRename(Path srcPath, Path dstPath, boolean dstIsDir)
|
void verifyRename(Path srcPath, Path dstPath, boolean dstIsDir)
|
||||||
throws Exception {
|
throws Exception {
|
||||||
localFs.delete(srcPath,true);
|
localFs.delete(srcPath,true);
|
||||||
|
|
Loading…
Reference in New Issue