diff --git a/src/main/java/org/apache/hadoop/hbase/HRegionInfo.java b/src/main/java/org/apache/hadoop/hbase/HRegionInfo.java index 49746a1..44565cd 100644 --- a/src/main/java/org/apache/hadoop/hbase/HRegionInfo.java +++ b/src/main/java/org/apache/hadoop/hbase/HRegionInfo.java @@ -21,14 +21,19 @@ package org.apache.hadoop.hbase; import java.io.DataInput; import java.io.DataOutput; +import java.io.FileNotFoundException; import java.io.IOException; import java.util.Arrays; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.fs.FileSystem; +import org.apache.hadoop.fs.Path; import org.apache.hadoop.hbase.KeyValue.KVComparator; import org.apache.hadoop.hbase.migration.HRegionInfo090x; import org.apache.hadoop.hbase.util.Bytes; +import org.apache.hadoop.hbase.util.FSTableDescriptors; import org.apache.hadoop.hbase.util.JenkinsHash; import org.apache.hadoop.hbase.util.MD5Hash; import org.apache.hadoop.io.VersionedWritable; @@ -535,10 +540,26 @@ public class HRegionInfo extends VersionedWritable implements WritableComparable Bytes.equals(endKey, HConstants.EMPTY_BYTE_ARRAY)); } - /** @return the tableDesc */ + /** + * @return the tableDesc + * @deprecated Do not use; expensive call + */ @Deprecated public HTableDescriptor getTableDesc(){ - return null; + Configuration c = HBaseConfiguration.create(); + FileSystem fs; + try { + fs = FileSystem.get(c); + } catch (IOException e) { + throw new RuntimeException(e); + } + FSTableDescriptors fstd = + new FSTableDescriptors(fs, new Path(c.get(HConstants.HBASE_DIR))); + try { + return fstd.get(this.tableName); + } catch (IOException e) { + throw new RuntimeException(e); + } } /** @@ -546,7 +567,7 @@ public class HRegionInfo extends VersionedWritable implements WritableComparable */ @Deprecated public void setTableDesc(HTableDescriptor newDesc) { - // do nothing. + throw new UnsupportedOperationException(); } /** @return true if this is the root region */