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:25:23 UTC

svn commit: r1347719 - in /hbase/trunk/hbase-server/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:25:22 2012
New Revision: 1347719

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

Modified:
    hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
    hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAdmin.java

Modified: hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java?rev=1347719&r1=1347718&r2=1347719&view=diff
==============================================================================
--- hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java (original)
+++ hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java Thu Jun  7 17:25:22 2012
@@ -725,6 +725,7 @@ public class HBaseAdmin implements Abort
    */
   public void enableTableAsync(final byte [] tableName)
   throws IOException {
+    HTableDescriptor.isLegalTableName(tableName);
     execute(new MasterCallable<Void>() {
       @Override
       public Void call() throws ServiceException {
@@ -795,6 +796,7 @@ public class HBaseAdmin implements Abort
    * @since 0.90.0
    */
   public void disableTableAsync(final byte [] tableName) throws IOException {
+    HTableDescriptor.isLegalTableName(tableName);
     execute(new MasterCallable<Void>() {
       @Override
       public Void call() throws ServiceException {

Modified: hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAdmin.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAdmin.java?rev=1347719&r1=1347718&r2=1347719&view=diff
==============================================================================
--- hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAdmin.java (original)
+++ hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAdmin.java Thu Jun  7 17:25:22 2012
@@ -1588,6 +1588,21 @@ public class TestAdmin {
       " HBase was not available");
   }
 
+  @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();