diff --git a/CHANGES.txt b/CHANGES.txt index bdf3f39e6e4..7d0fc7321c2 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -216,6 +216,7 @@ Release 0.2.0 expecting IllegalStateException HBASE-766 FileNotFoundException trying to load HStoreFile 'data' HBASE-770 Update HBaseRPC to match hadoop 0.17 RPC + HBASE-780 Can't scan '.META.' from new shell IMPROVEMENTS HBASE-559 MR example job to count table rows diff --git a/src/java/org/apache/hadoop/hbase/HTableDescriptor.java b/src/java/org/apache/hadoop/hbase/HTableDescriptor.java index 58618266e99..eeb26b5fcc5 100644 --- a/src/java/org/apache/hadoop/hbase/HTableDescriptor.java +++ b/src/java/org/apache/hadoop/hbase/HTableDescriptor.java @@ -88,7 +88,7 @@ public class HTableDescriptor implements WritableComparable { * Private constructor used internally creating table descriptors for * catalog tables: e.g. .META. and -ROOT-. */ - private HTableDescriptor(final byte [] name, HColumnDescriptor[] families) { + protected HTableDescriptor(final byte [] name, HColumnDescriptor[] families) { this.name = name.clone(); setMetaFlags(name); for(HColumnDescriptor descriptor : families) { diff --git a/src/java/org/apache/hadoop/hbase/client/UnmodifyableHTableDescriptor.java b/src/java/org/apache/hadoop/hbase/client/UnmodifyableHTableDescriptor.java index 78c4b1430a6..cb7f2809093 100644 --- a/src/java/org/apache/hadoop/hbase/client/UnmodifyableHTableDescriptor.java +++ b/src/java/org/apache/hadoop/hbase/client/UnmodifyableHTableDescriptor.java @@ -36,10 +36,21 @@ public class UnmodifyableHTableDescriptor extends HTableDescriptor { * @param desc */ UnmodifyableHTableDescriptor(final HTableDescriptor desc) { - super(desc.getName()); + super(desc.getName(), getUnmodifyableFamilies(desc)); + } + + /* + * @param desc + * @return Families as unmodifiable array. + */ + private static HColumnDescriptor[] getUnmodifyableFamilies( + final HTableDescriptor desc) { + HColumnDescriptor [] f = new HColumnDescriptor[desc.getFamilies().size()]; + int i = 0; for (HColumnDescriptor c: desc.getFamilies()) { - super.addFamily(new UnmodifyableHColumnDescriptor(c)); + f[i++] = c; } + return f; } /**