You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by st...@apache.org on 2011/06/22 21:55:40 UTC

svn commit: r1138601 - in /hbase/trunk/src: main/java/org/apache/hadoop/hbase/avro/ main/java/org/apache/hadoop/hbase/client/ main/java/org/apache/hadoop/hbase/util/ test/java/org/apache/hadoop/hbase/avro/ test/java/org/apache/hadoop/hbase/util/

Author: stack
Date: Wed Jun 22 19:55:40 2011
New Revision: 1138601

URL: http://svn.apache.org/viewvc?rev=1138601&view=rev
Log:
HBASE-451 Remove HTableDescriptor from HRegionInfo -- part 2, some cleanup

Modified:
    hbase/trunk/src/main/java/org/apache/hadoop/hbase/avro/AvroServer.java
    hbase/trunk/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
    hbase/trunk/src/main/java/org/apache/hadoop/hbase/util/FSUtils.java
    hbase/trunk/src/test/java/org/apache/hadoop/hbase/avro/TestAvroServer.java
    hbase/trunk/src/test/java/org/apache/hadoop/hbase/util/TestMergeTable.java

Modified: hbase/trunk/src/main/java/org/apache/hadoop/hbase/avro/AvroServer.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/avro/AvroServer.java?rev=1138601&r1=1138600&r2=1138601&view=diff
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/avro/AvroServer.java (original)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/avro/AvroServer.java Wed Jun 22 19:55:40 2011
@@ -35,6 +35,7 @@ import org.apache.hadoop.hbase.HBaseConf
 import org.apache.hadoop.hbase.HTableDescriptor;
 import org.apache.hadoop.hbase.MasterNotRunningException;
 import org.apache.hadoop.hbase.TableExistsException;
+import org.apache.hadoop.hbase.TableNotFoundException;
 import org.apache.hadoop.hbase.avro.generated.AClusterStatus;
 import org.apache.hadoop.hbase.avro.generated.ADelete;
 import org.apache.hadoop.hbase.avro.generated.AFamilyDescriptor;
@@ -190,6 +191,8 @@ public class AvroServer {
     public ATableDescriptor describeTable(ByteBuffer table) throws AIOError {
       try {
 	return AvroUtil.htdToATD(admin.getTableDescriptor(Bytes.toBytes(table)));
+      } catch (TableNotFoundException e) {
+        return null;
       } catch (IOException e) {
         AIOError ioe = new AIOError();
         ioe.message = new Utf8(e.getMessage());

Modified: hbase/trunk/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java?rev=1138601&r1=1138600&r2=1138601&view=diff
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java (original)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java Wed Jun 22 19:55:40 2011
@@ -42,6 +42,7 @@ import org.apache.hadoop.hbase.RegionExc
 import org.apache.hadoop.hbase.RemoteExceptionHandler;
 import org.apache.hadoop.hbase.ServerName;
 import org.apache.hadoop.hbase.TableExistsException;
+import org.apache.hadoop.hbase.TableNotFoundException;
 import org.apache.hadoop.hbase.UnknownRegionException;
 import org.apache.hadoop.hbase.ZooKeeperConnectionException;
 import org.apache.hadoop.hbase.catalog.CatalogTracker;
@@ -194,10 +195,11 @@ public class HBaseAdmin implements Abort
    * Method for getting the tableDescriptor
    * @param tableName as a byte []
    * @return the tableDescriptor
+   * @throws TableNotFoundException
    * @throws IOException if a remote or network exception occurs
    */
   public HTableDescriptor getTableDescriptor(final byte [] tableName)
-  throws IOException {
+  throws TableNotFoundException, IOException {
     return this.connection.getHTableDescriptor(tableName);
   }
 

Modified: hbase/trunk/src/main/java/org/apache/hadoop/hbase/util/FSUtils.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/util/FSUtils.java?rev=1138601&r1=1138600&r2=1138601&view=diff
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/util/FSUtils.java (original)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/util/FSUtils.java Wed Jun 22 19:55:40 2011
@@ -936,6 +936,9 @@ public class FSUtils {
     HTableDescriptor htd = null;
     try {
       htd = getTableDescriptor(fs, getTablePath(hbaseRootDir, tableName));
+    } catch (NullPointerException e) {
+      LOG.debug("Exception during readTableDecriptor. Current table name = " +
+        tableName , e);
     } catch (IOException ioe) {
       LOG.debug("Exception during readTableDecriptor. Current table name = " +
         tableName , ioe);
@@ -944,10 +947,10 @@ public class FSUtils {
   }
 
   public static HTableDescriptor getTableDescriptor(FileSystem fs, Path tableDir)
-  throws IOException {
+  throws IOException, NullPointerException {
     if (tableDir == null) throw new NullPointerException();
-    FSDataInputStream fsDataInputStream =
-      fs.open(new Path(tableDir, HConstants.TABLEINFO_NAME));
+    Path tableinfo = new Path(tableDir, HConstants.TABLEINFO_NAME);
+    FSDataInputStream fsDataInputStream = fs.open(tableinfo);
     HTableDescriptor hTableDescriptor = null;
     try {
       hTableDescriptor = new HTableDescriptor();

Modified: hbase/trunk/src/test/java/org/apache/hadoop/hbase/avro/TestAvroServer.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/test/java/org/apache/hadoop/hbase/avro/TestAvroServer.java?rev=1138601&r1=1138600&r2=1138601&view=diff
==============================================================================
--- hbase/trunk/src/test/java/org/apache/hadoop/hbase/avro/TestAvroServer.java (original)
+++ hbase/trunk/src/test/java/org/apache/hadoop/hbase/avro/TestAvroServer.java Wed Jun 22 19:55:40 2011
@@ -125,7 +125,11 @@ public class TestAvroServer {
     tableA.maxFileSize = 123456L;
     impl.modifyTable(tableAname, tableA);
     // It can take a while for the change to take effect.  Wait here a while.
-    while(impl.describeTable(tableAname).maxFileSize != 123456L) Threads.sleep(100);
+    while(impl.describeTable(tableAname) == null) {
+      Threads.sleep(100);
+    }
+
+    assertTrue(impl.describeTable(tableAname).maxFileSize == 123456L);
     assertEquals(123456L, (long) impl.describeTable(tableAname).maxFileSize);
 /* DISABLED FOR NOW TILL WE HAVE BETTER DISABLE/ENABLE
     impl.enableTable(tableAname);

Modified: hbase/trunk/src/test/java/org/apache/hadoop/hbase/util/TestMergeTable.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/test/java/org/apache/hadoop/hbase/util/TestMergeTable.java?rev=1138601&r1=1138600&r2=1138601&view=diff
==============================================================================
--- hbase/trunk/src/test/java/org/apache/hadoop/hbase/util/TestMergeTable.java (original)
+++ hbase/trunk/src/test/java/org/apache/hadoop/hbase/util/TestMergeTable.java Wed Jun 22 19:55:40 2011
@@ -36,8 +36,6 @@ import org.apache.hadoop.hbase.HTableDes
 import org.apache.hadoop.hbase.catalog.CatalogTracker;
 import org.apache.hadoop.hbase.catalog.MetaReader;
 import org.apache.hadoop.hbase.client.HBaseAdmin;
-import org.apache.hadoop.hbase.client.HConnection;
-import org.apache.hadoop.hbase.client.HConnectionManager;
 import org.apache.hadoop.hbase.client.Put;
 import org.apache.hadoop.hbase.regionserver.HRegion;
 import org.junit.Test;
@@ -96,7 +94,9 @@ public class TestMergeTable {
     byte [] row_70001 = Bytes.toBytes("row_70001");
     byte [] row_80001 = Bytes.toBytes("row_80001");
 
-    // Create regions and populate them at same time.
+    // Create regions and populate them at same time.  Create the tabledir
+    // for them first.
+    FSUtils.createTableDescriptor(fs, rootdir, desc);
     HRegion [] regions = {
       createRegion(desc, null, row_70001, 1, 70000, rootdir),
       createRegion(desc, row_70001, row_80001, 70001, 10000, rootdir),