You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by ra...@apache.org on 2012/06/07 19:22:05 UTC

svn commit: r1347718 - in /hbase/branches/0.94/src: main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java test/java/org/apache/hadoop/hbase/client/TestAdmin.java

Author: ramkrishna
Date: Thu Jun  7 17:22:05 2012
New Revision: 1347718

URL: http://svn.apache.org/viewvc?rev=1347718&view=rev
Log:
HBASE-6146 Disabling of Catalog tables should not be allowed (Anoop)

Modified:
    hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
    hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/client/TestAdmin.java

Modified: hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java?rev=1347718&r1=1347717&r2=1347718&view=diff
==============================================================================
--- hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java (original)
+++ hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java Thu Jun  7 17:22:05 2012
@@ -695,6 +695,7 @@ public class HBaseAdmin implements Abort
    */
   public void enableTableAsync(final byte [] tableName)
   throws IOException {
+    HTableDescriptor.isLegalTableName(tableName);
     isMasterRunning();
     try {
       getMaster().enableTable(tableName);
@@ -763,6 +764,7 @@ public class HBaseAdmin implements Abort
    * @since 0.90.0
    */
   public void disableTableAsync(final byte [] tableName) throws IOException {
+    HTableDescriptor.isLegalTableName(tableName);
     isMasterRunning();
     try {
       getMaster().disableTable(tableName);

Modified: hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/client/TestAdmin.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/client/TestAdmin.java?rev=1347718&r1=1347717&r2=1347718&view=diff
==============================================================================
--- hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/client/TestAdmin.java (original)
+++ hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/client/TestAdmin.java Thu Jun  7 17:22:05 2012
@@ -1529,6 +1529,21 @@ public class TestAdmin {
     Assert.assertEquals(initialCount, finalCount) ;
   }
 
+  @Test
+  public void testDisableCatalogTable() throws Exception {
+    try {
+      this.admin.disableTable(".META.");
+      fail("Expected to throw IllegalArgumentException");
+    } catch (IllegalArgumentException e) {
+    }
+    // Before the fix for HBASE-6146, the below table creation was failing as the META table
+    // actually getting disabled by the disableTable() call.
+    HTableDescriptor htd = new HTableDescriptor("testDisableCatalogTable".getBytes());
+    HColumnDescriptor hcd = new HColumnDescriptor("cf1".getBytes());
+    htd.addFamily(hcd);
+    TEST_UTIL.getHBaseAdmin().createTable(htd);
+  }
+  
   @org.junit.Rule
   public org.apache.hadoop.hbase.ResourceCheckerJUnitRule cu =
     new org.apache.hadoop.hbase.ResourceCheckerJUnitRule();