You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@accumulo.apache.org by el...@apache.org on 2013/12/27 03:43:58 UTC

git commit: ACCUMULO-2091 Catch AccumuloException in RW RenameTable.

Updated Branches:
  refs/heads/1.6.0-SNAPSHOT 9f59c0022 -> ccb6093bb


ACCUMULO-2091 Catch AccumuloException in RW RenameTable.

When we rename a table, we might attempt to rename it to a different namespace. This should cause an error, so check for
this.


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

Branch: refs/heads/1.6.0-SNAPSHOT
Commit: ccb6093bbc33bb5ec8155aca7a594c5c58719ca4
Parents: 9f59c00
Author: Josh Elser <el...@apache.org>
Authored: Thu Dec 26 21:33:28 2013 -0500
Committer: Josh Elser <el...@apache.org>
Committed: Thu Dec 26 21:36:05 2013 -0500

----------------------------------------------------------------------
 .../test/randomwalk/concurrent/RenameTable.java | 23 ++++++++++++++++++++
 .../test/randomwalk/concurrent/Setup.java       |  2 ++
 2 files changed, 25 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/accumulo/blob/ccb6093b/test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTable.java
----------------------------------------------------------------------
diff --git a/test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTable.java b/test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTable.java
index 0e0b406..6c7516e 100644
--- a/test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTable.java
+++ b/test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/RenameTable.java
@@ -20,6 +20,7 @@ import java.util.List;
 import java.util.Properties;
 import java.util.Random;
 
+import org.apache.accumulo.core.client.AccumuloException;
 import org.apache.accumulo.core.client.Connector;
 import org.apache.accumulo.core.client.TableExistsException;
 import org.apache.accumulo.core.client.TableNotFoundException;
@@ -40,6 +41,18 @@ public class RenameTable extends Test {
     String srcTableName = tableNames.get(rand.nextInt(tableNames.size()));
     String newTableName = tableNames.get(rand.nextInt(tableNames.size()));
     
+    String srcNamespace = "", newNamespace = "";
+    
+    int index = srcTableName.indexOf('.');
+    if (-1 != index) {
+      srcNamespace = srcTableName.substring(0, index);
+    }
+    
+    index = newTableName.indexOf('.');
+    if (-1 != index) {
+      newNamespace = newTableName.substring(0, index);
+    }
+    
     try {
       conn.tableOperations().rename(srcTableName, newTableName);
       log.debug("Renamed table " + srcTableName + " " + newTableName);
@@ -49,6 +62,16 @@ public class RenameTable extends Test {
       log.debug("Rename " + srcTableName + " failed, doesnt exist");
     } catch (IllegalArgumentException e) {
       log.debug("Rename: " + e.toString());
+    } catch (AccumuloException e) {
+      // Catch the expected failure when we try to rename a table into a new namespace
+      if (!srcNamespace.equals(newNamespace)) {
+        return;
+      }
+      log.debug("Rename " + srcTableName + " failed.", e);
+    }
+    
+    if (!srcNamespace.equals(newNamespace)) {
+      log.error("RenameTable operation should have failed when renaming across namespaces.");
     }
   }
 }

http://git-wip-us.apache.org/repos/asf/accumulo/blob/ccb6093b/test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Setup.java
----------------------------------------------------------------------
diff --git a/test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Setup.java b/test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Setup.java
index edab2b5..cb481f8 100644
--- a/test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Setup.java
+++ b/test/src/main/java/org/apache/accumulo/test/randomwalk/concurrent/Setup.java
@@ -42,11 +42,13 @@ public class Setup extends Test {
       namespaces.add(String.format("nspc_%03d", i));
     }
     
+    // Make tables in the default namespace
     double tableCeil = Math.ceil(numTables / (numNamespaces + 1));
     for (int i = 0; i < tableCeil; i++) {
       tables.add(String.format("ctt_%03d", i));
     }
     
+    // Make tables in each namespace
     double tableFloor = Math.floor(numTables / (numNamespaces + 1));
     for (String n : namespaces) {
       for (int i = 0; i < tableFloor; i++) {