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 sh...@apache.org on 2015/05/07 01:23:09 UTC
hadoop git commit: HDFS-2484. checkLease should throw
FileNotFoundException when file does not exist. Contributed by Rakesh R.
Repository: hadoop
Updated Branches:
refs/heads/trunk b72507810 -> c75cfa29c
HDFS-2484. checkLease should throw FileNotFoundException when file does not exist. Contributed by Rakesh R.
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/c75cfa29
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/c75cfa29
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/c75cfa29
Branch: refs/heads/trunk
Commit: c75cfa29cfc527242837d80962688aa53c111e72
Parents: b725078
Author: Konstantin V Shvachko <sh...@apache.org>
Authored: Wed May 6 16:06:04 2015 -0700
Committer: Konstantin V Shvachko <sh...@apache.org>
Committed: Wed May 6 16:06:04 2015 -0700
----------------------------------------------------------------------
hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt | 3 +++
.../hadoop/hdfs/server/namenode/FSNamesystem.java | 2 +-
.../org/apache/hadoop/hdfs/TestFileCreation.java | 5 ++---
.../test/java/org/apache/hadoop/hdfs/TestLease.java | 16 +++++++++++++++-
4 files changed, 21 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hadoop/blob/c75cfa29/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
index a878374..d2e50b8 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
+++ b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
@@ -635,6 +635,9 @@ Release 2.8.0 - UNRELEASED
HDFS-8310. Fix TestCLI.testAll "help: help for find" on Windows.
(Kiran Kumar M R via Xiaoyu Yao)
+ HDFS-2484. checkLease should throw FileNotFoundException when file does
+ not exist. (Rakesh R via shv)
+
Release 2.7.1 - UNRELEASED
INCOMPATIBLE CHANGES
http://git-wip-us.apache.org/repos/asf/hadoop/blob/c75cfa29/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java
index 72e1d32..84cb905 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java
@@ -3451,7 +3451,7 @@ public class FSNamesystem implements Namesystem, FSNamesystemMBean,
final String ident = src + " (inode " + fileId + ")";
if (inode == null) {
Lease lease = leaseManager.getLease(holder);
- throw new LeaseExpiredException(
+ throw new FileNotFoundException(
"No lease on " + ident + ": File does not exist. "
+ (lease != null ? lease.toString()
: "Holder " + holder + " does not have any open files."));
http://git-wip-us.apache.org/repos/asf/hadoop/blob/c75cfa29/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestFileCreation.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestFileCreation.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestFileCreation.java
index f56ff9e..f732ace 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestFileCreation.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestFileCreation.java
@@ -78,7 +78,6 @@ import org.apache.hadoop.hdfs.server.datanode.DataNodeTestUtils;
import org.apache.hadoop.hdfs.server.datanode.SimulatedFSDataset;
import org.apache.hadoop.hdfs.server.datanode.fsdataset.FsDatasetSpi;
import org.apache.hadoop.hdfs.server.namenode.FSNamesystem;
-import org.apache.hadoop.hdfs.server.namenode.LeaseExpiredException;
import org.apache.hadoop.hdfs.server.namenode.LeaseManager;
import org.apache.hadoop.hdfs.server.namenode.NameNode;
import org.apache.hadoop.hdfs.server.namenode.NameNodeAdapter;
@@ -1212,8 +1211,8 @@ public class TestFileCreation {
cluster.getNameNodeRpc()
.complete(f.toString(), client.clientName, null, someOtherFileId);
fail();
- } catch(LeaseExpiredException e) {
- FileSystem.LOG.info("Caught Expected LeaseExpiredException: ", e);
+ } catch(FileNotFoundException e) {
+ FileSystem.LOG.info("Caught Expected FileNotFoundException: ", e);
}
} finally {
IOUtils.closeStream(dfs);
http://git-wip-us.apache.org/repos/asf/hadoop/blob/c75cfa29/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestLease.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestLease.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestLease.java
index 88dbd5e..90dc0a7 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestLease.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestLease.java
@@ -27,6 +27,7 @@ import static org.mockito.Mockito.doThrow;
import static org.mockito.Mockito.spy;
import java.io.DataOutputStream;
+import java.io.FileNotFoundException;
import java.io.IOException;
import java.security.PrivilegedExceptionAction;
@@ -50,6 +51,7 @@ import org.apache.hadoop.io.EnumSetWritable;
import org.apache.hadoop.ipc.RemoteException;
import org.apache.hadoop.security.UserGroupInformation;
import org.apache.hadoop.security.token.SecretManager.InvalidToken;
+import org.apache.hadoop.test.GenericTestUtils;
import org.apache.hadoop.util.Time;
import org.junit.Assert;
import org.junit.Test;
@@ -321,8 +323,20 @@ public class TestLease {
Assert.assertTrue(!hasLease(cluster, a));
Assert.assertTrue(!hasLease(cluster, b));
-
+
+ Path fileA = new Path(dir, "fileA");
+ FSDataOutputStream fileA_out = fs.create(fileA);
+ fileA_out.writeBytes("something");
+ Assert.assertTrue("Failed to get the lease!", hasLease(cluster, fileA));
+
fs.delete(dir, true);
+ try {
+ fileA_out.hflush();
+ Assert.fail("Should validate file existence!");
+ } catch (FileNotFoundException e) {
+ // expected
+ GenericTestUtils.assertExceptionContains("File does not exist", e);
+ }
} finally {
if (cluster != null) {cluster.shutdown();}
}