HDFS-3101. Cannot read empty file using WebHDFS.

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1301287 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Tsz-wo Sze 2012-03-16 00:01:23 +00:00
parent 49619e8997
commit 7e5b60116e
3 changed files with 22 additions and 5 deletions

View File

@ -701,6 +701,8 @@ Release 0.23.2 - UNRELEASED
HDFS-2038. Update TestHDFSCLI to handle relative paths with globs.
(Kihwal Lee via szetszwo)
HDFS-3101. Cannot read empty file using WebHDFS. (szetszwo)
Release 0.23.1 - 2012-02-17
INCOMPATIBLE CHANGES

View File

@ -146,9 +146,11 @@ private static DatanodeInfo chooseDatanode(final NameNode namenode,
throw new FileNotFoundException("File " + path + " not found.");
}
final long len = status.getLen();
if (op == GetOpParam.Op.OPEN && (openOffset < 0L || openOffset >= len)) {
throw new IOException("Offset=" + openOffset + " out of the range [0, "
+ len + "); " + op + ", path=" + path);
if (op == GetOpParam.Op.OPEN) {
if (openOffset < 0L || (openOffset >= len && len > 0)) {
throw new IOException("Offset=" + openOffset
+ " out of the range [0, " + len + "); " + op + ", path=" + path);
}
}
if (len > 0) {

View File

@ -176,7 +176,21 @@ public void testOpenNonExistFile() throws IOException {
}
public void testSeek() throws IOException {
final Path p = new Path("/test/testSeek");
final Path dir = new Path("/test/testSeek");
assertTrue(fs.mkdirs(dir));
{ //test zero file size
final Path zero = new Path(dir, "zero");
fs.create(zero).close();
int count = 0;
final FSDataInputStream in = fs.open(zero);
for(; in.read() != -1; count++);
in.close();
assertEquals(0, count);
}
final Path p = new Path(dir, "file");
createFile(p);
final int one_third = data.length/3;
@ -248,7 +262,6 @@ public void testRootDir() throws IOException {
final FSDataInputStream in = fs.open(root);
in.read();
fail();
fail();
} catch(IOException e) {
WebHdfsFileSystem.LOG.info("This is expected.", e);
}