svn merge -c 1301287 from trunk for HDFS-3101.

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-0.23@1301288 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Tsz-wo Sze 2012-03-16 00:02:12 +00:00
parent 741d84a09d
commit e78ad9b167
3 changed files with 22 additions and 5 deletions

View File

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

View File

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

View File

@ -176,7 +176,21 @@ public class TestWebHdfsFileSystemContract extends FileSystemContractBaseTest {
} }
public void testSeek() 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); createFile(p);
final int one_third = data.length/3; final int one_third = data.length/3;
@ -248,7 +262,6 @@ public class TestWebHdfsFileSystemContract extends FileSystemContractBaseTest {
final FSDataInputStream in = fs.open(root); final FSDataInputStream in = fs.open(root);
in.read(); in.read();
fail(); fail();
fail();
} catch(IOException e) { } catch(IOException e) {
WebHdfsFileSystem.LOG.info("This is expected.", e); WebHdfsFileSystem.LOG.info("This is expected.", e);
} }