You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by bo...@apache.org on 2012/01/31 23:47:35 UTC
svn commit: r1238845 - in
/hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common:
CHANGES.txt src/main/java/org/apache/hadoop/fs/ChecksumFileSystem.java
Author: bobby
Date: Tue Jan 31 22:47:34 2012
New Revision: 1238845
URL: http://svn.apache.org/viewvc?rev=1238845&view=rev
Log:
Merge -r 1238840:1238841 from trunk to branch-0.23. Fixes: HADOOP-8006
Modified:
hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/CHANGES.txt
hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/ChecksumFileSystem.java
Modified: hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/CHANGES.txt?rev=1238845&r1=1238844&r2=1238845&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/CHANGES.txt (original)
+++ hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/CHANGES.txt Tue Jan 31 22:47:34 2012
@@ -90,6 +90,9 @@ Release 0.23.1 - Unreleased
OPTIMIZATIONS
BUG FIXES
+
+ HADOOP-8006 TestFSInputChecker is failing in trunk.
+ (Daryn Sharp via bobby)
HADOOP-7998. CheckFileSystem does not correctly honor setVerifyChecksum
(Daryn Sharp via bobby)
Modified: hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/ChecksumFileSystem.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/ChecksumFileSystem.java?rev=1238845&r1=1238844&r2=1238845&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/ChecksumFileSystem.java (original)
+++ hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/ChecksumFileSystem.java Tue Jan 31 22:47:34 2012
@@ -119,7 +119,6 @@ public abstract class ChecksumFileSystem
private static final int HEADER_LENGTH = 8;
private int bytesPerSum = 1;
- private long fileLen = -1L;
public ChecksumFSInputChecker(ChecksumFileSystem fs, Path file)
throws IOException {
@@ -244,6 +243,24 @@ public abstract class ChecksumFileSystem
}
return nread;
}
+ }
+
+ private static class FSDataBoundedInputStream extends FSDataInputStream {
+ private FileSystem fs;
+ private Path file;
+ private long fileLen = -1L;
+
+ FSDataBoundedInputStream(FileSystem fs, Path file, InputStream in)
+ throws IOException {
+ super(in);
+ this.fs = fs;
+ this.file = file;
+ }
+
+ @Override
+ public boolean markSupported() {
+ return false;
+ }
/* Return the file length */
private long getFileLength() throws IOException {
@@ -304,9 +321,16 @@ public abstract class ChecksumFileSystem
*/
@Override
public FSDataInputStream open(Path f, int bufferSize) throws IOException {
- return verifyChecksum
- ? new FSDataInputStream(new ChecksumFSInputChecker(this, f, bufferSize))
- : getRawFileSystem().open(f, bufferSize);
+ FileSystem fs;
+ InputStream in;
+ if (verifyChecksum) {
+ fs = this;
+ in = new ChecksumFSInputChecker(this, f, bufferSize);
+ } else {
+ fs = getRawFileSystem();
+ in = fs.open(f, bufferSize);
+ }
+ return new FSDataBoundedInputStream(fs, f, in);
}
/** {@inheritDoc} */