accumulo-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ctubb...@apache.org
Subject [1/8] accumulo git commit: ACCUMULO-3169 Handle table not found case in clone
Date Fri, 29 May 2015 21:18:02 GMT
Repository: accumulo
Updated Branches:
  refs/heads/1.6 182fbce76 -> 76c545bb3
  refs/heads/1.7 0eef354c5 -> f7be66e69
  refs/heads/master 6021fdb2d -> f15a451d0


ACCUMULO-3169 Handle table not found case in clone

* Ensure that we can retrieve the namespaceId for the given srcTableId when we
  construct a CloneTable fate operation.
* Throw an appropriate exception which propagates to the client when we can't.


Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo
Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/76c545bb
Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/76c545bb
Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/76c545bb

Branch: refs/heads/1.6
Commit: 76c545bb3bdb4c59963cc00417a663ab1ae046f1
Parents: 182fbce
Author: Christopher Tubbs <ctubbsii@apache.org>
Authored: Fri May 29 17:01:40 2015 -0400
Committer: Christopher Tubbs <ctubbsii@apache.org>
Committed: Fri May 29 17:09:01 2015 -0400

----------------------------------------------------------------------
 .../apache/accumulo/master/tableOps/CloneTable.java    | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/accumulo/blob/76c545bb/server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTable.java
----------------------------------------------------------------------
diff --git a/server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTable.java
b/server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTable.java
index da0afd8..b7e335f 100644
--- a/server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTable.java
+++ b/server/master/src/main/java/org/apache/accumulo/master/tableOps/CloneTable.java
@@ -231,7 +231,8 @@ public class CloneTable extends MasterRepo {
   private static final long serialVersionUID = 1L;
   private CloneInfo cloneInfo;
 
-  public CloneTable(String user, String srcTableId, String tableName, Map<String,String>
propertiesToSet, Set<String> propertiesToExclude) {
+  public CloneTable(String user, String srcTableId, String tableName, Map<String,String>
propertiesToSet, Set<String> propertiesToExclude)
+      throws ThriftTableOperationException {
     cloneInfo = new CloneInfo();
     cloneInfo.user = user;
     cloneInfo.srcTableId = srcTableId;
@@ -239,7 +240,15 @@ public class CloneTable extends MasterRepo {
     cloneInfo.propertiesToExclude = propertiesToExclude;
     cloneInfo.propertiesToSet = propertiesToSet;
     Instance inst = HdfsZooInstance.getInstance();
-    cloneInfo.srcNamespaceId = Tables.getNamespaceId(inst, cloneInfo.srcTableId);
+    try {
+      cloneInfo.srcNamespaceId = Tables.getNamespaceId(inst, cloneInfo.srcTableId);
+    } catch (IllegalArgumentException e) {
+      if (inst == null || cloneInfo.srcTableId == null) {
+        // just throw the exception if the illegal argument was thrown by the argument checker
and not due to table non-existence
+        throw e;
+      }
+      throw new ThriftTableOperationException(cloneInfo.srcTableId, "", TableOperation.CLONE,
TableOperationExceptionType.NOTFOUND, "Table does not exist");
+    }
   }
 
   @Override


Mime
View raw message