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 ji...@apache.org on 2011/10/28 22:19:03 UTC
svn commit: r1190541 - in
/hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common: ./
src/main/java/org/apache/hadoop/fs/viewfs/
src/test/java/org/apache/hadoop/fs/viewfs/
Author: jitendra
Date: Fri Oct 28 20:19:02 2011
New Revision: 1190541
URL: http://svn.apache.org/viewvc?rev=1190541&view=rev
Log:
Merged r1190532 from trunk for HADOOP-7770.
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/viewfs/ViewFileSystem.java
hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/viewfs/ViewFs.java
hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/viewfs/TestViewfsFileStatus.java
hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/viewfs/ViewFsBaseTest.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=1190541&r1=1190540&r2=1190541&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 Fri Oct 28 20:19:02 2011
@@ -697,6 +697,9 @@ Release 0.23.0 - Unreleased
HADOOP-7778. FindBugs warning in Token.getKind(). (tomwhite)
+ HADOOP-7770. ViewFS getFileChecksum throws FileNotFoundException for files in
+ /tmp and /user. (Ravi Prakash via jitendra)
+
Release 0.22.0 - Unreleased
INCOMPATIBLE CHANGES
Modified: hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/viewfs/ViewFileSystem.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/viewfs/ViewFileSystem.java?rev=1190541&r1=1190540&r2=1190541&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/viewfs/ViewFileSystem.java (original)
+++ hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/viewfs/ViewFileSystem.java Fri Oct 28 20:19:02 2011
@@ -318,7 +318,7 @@ public class ViewFileSystem extends File
IOException {
InodeTree.ResolveResult<FileSystem> res =
fsState.resolve(getUriPath(f), true);
- return res.targetFileSystem.getFileChecksum(f);
+ return res.targetFileSystem.getFileChecksum(res.remainingPath);
}
@Override
Modified: hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/viewfs/ViewFs.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/viewfs/ViewFs.java?rev=1190541&r1=1190540&r2=1190541&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/viewfs/ViewFs.java (original)
+++ hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/viewfs/ViewFs.java Fri Oct 28 20:19:02 2011
@@ -316,7 +316,7 @@ public class ViewFs extends AbstractFile
UnresolvedLinkException, IOException {
InodeTree.ResolveResult<AbstractFileSystem> res =
fsState.resolve(getUriPath(f), true);
- return res.targetFileSystem.getFileChecksum(f);
+ return res.targetFileSystem.getFileChecksum(res.remainingPath);
}
@Override
Modified: hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/viewfs/TestViewfsFileStatus.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/viewfs/TestViewfsFileStatus.java?rev=1190541&r1=1190540&r2=1190541&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/viewfs/TestViewfsFileStatus.java (original)
+++ hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/viewfs/TestViewfsFileStatus.java Fri Oct 28 20:19:02 2011
@@ -23,6 +23,7 @@ import java.io.IOException;
import java.net.URISyntaxException;
import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.fs.FileChecksum;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.FileUtil;
@@ -33,6 +34,8 @@ import org.apache.hadoop.io.DataOutputBu
import org.junit.AfterClass;
import org.junit.Test;
+import org.mockito.Mockito;
+
import static org.junit.Assert.*;
/**
@@ -81,6 +84,27 @@ public class TestViewfsFileStatus {
assertEquals(content.length, deSer.getLen());
}
+ // Tests that ViewFileSystem.getFileChecksum calls res.targetFileSystem
+ // .getFileChecksum with res.remainingPath and not with f
+ @Test
+ public void testGetFileChecksum() throws IOException {
+ FileSystem mockFS = Mockito.mock(FileSystem.class);
+ InodeTree.ResolveResult<FileSystem> res =
+ new InodeTree.ResolveResult<FileSystem>(null, mockFS , null,
+ new Path("someFile"));
+ @SuppressWarnings("unchecked")
+ InodeTree<FileSystem> fsState = Mockito.mock(InodeTree.class);
+ Mockito.when(fsState.resolve("/tmp/someFile", true)).thenReturn(res);
+ ViewFileSystem vfs = Mockito.mock(ViewFileSystem.class);
+ vfs.fsState = fsState;
+
+ Mockito.when(vfs.getFileChecksum(new Path("/tmp/someFile")))
+ .thenCallRealMethod();
+ vfs.getFileChecksum(new Path("/tmp/someFile"));
+
+ Mockito.verify(mockFS).getFileChecksum(new Path("someFile"));
+ }
+
@AfterClass
public static void cleanup() throws IOException {
FileUtil.fullyDelete(TEST_DIR);
Modified: hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/viewfs/ViewFsBaseTest.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/viewfs/ViewFsBaseTest.java?rev=1190541&r1=1190540&r2=1190541&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/viewfs/ViewFsBaseTest.java (original)
+++ hadoop/common/branches/branch-0.23/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/viewfs/ViewFsBaseTest.java Fri Oct 28 20:19:02 2011
@@ -29,13 +29,15 @@ import java.net.URI;
import java.util.List;
import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.fs.AbstractFileSystem;
import org.apache.hadoop.fs.BlockLocation;
import org.apache.hadoop.fs.FileContext;
import org.apache.hadoop.fs.FileContextTestHelper;
+import org.apache.hadoop.fs.FileContextTestHelper.fileType;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FsConstants;
import org.apache.hadoop.fs.Path;
-import org.apache.hadoop.fs.FileContextTestHelper.fileType;
+import org.apache.hadoop.fs.UnresolvedLinkException;
import org.apache.hadoop.fs.viewfs.ViewFs.MountPoint;
import org.apache.hadoop.security.AccessControlException;
import org.apache.hadoop.security.token.Token;
@@ -43,6 +45,7 @@ import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
+import org.mockito.Mockito;
/**
@@ -408,6 +411,27 @@ public class ViewFsBaseTest {
}
}
+ @Test
+ public void testGetFileChecksum() throws AccessControlException
+ , UnresolvedLinkException, IOException {
+ AbstractFileSystem mockAFS = Mockito.mock(AbstractFileSystem.class);
+ InodeTree.ResolveResult<AbstractFileSystem> res =
+ new InodeTree.ResolveResult<AbstractFileSystem>(null, mockAFS , null,
+ new Path("someFile"));
+ @SuppressWarnings("unchecked")
+ InodeTree<AbstractFileSystem> fsState = Mockito.mock(InodeTree.class);
+ Mockito.when(fsState.resolve(Mockito.anyString()
+ , Mockito.anyBoolean())).thenReturn(res);
+ ViewFs vfs = Mockito.mock(ViewFs.class);
+ vfs.fsState = fsState;
+
+ Mockito.when(vfs.getFileChecksum(new Path("/tmp/someFile")))
+ .thenCallRealMethod();
+ vfs.getFileChecksum(new Path("/tmp/someFile"));
+
+ Mockito.verify(mockAFS).getFileChecksum(new Path("someFile"));
+ }
+
@Test(expected=FileNotFoundException.class)
public void testgetFSonDanglingLink() throws IOException {
fcView.getFileStatus(new Path("/danglingLink"));