My proposal below would make default HTableDescriptor ctor package private.
If there is no object, I will log a new JIRA. On Fri, Jul 22, 2011 at 4:27 PM, Ted Yu (JIRA) <[email protected]> wrote: > > [ > https://issues.apache.org/jira/browse/HBASE-4127?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13069840#comment-13069840] > > Ted Yu commented on HBASE-4127: > ------------------------------- > > +1 on the patch. > > Long term, we should hide this ctor, HTableDescriptor(). > Its existence is to support the following pattern: > {code} > hTableDescriptor = new HTableDescriptor(); > hTableDescriptor.readFields(fsDataInputStream); > {code} > I think we should replace this ctor with the following: > {code} > public HTableDescriptor getTableDescriptor(DataInputStream dataInputStream) > {code} > > > HBaseAdmin : Don't modify table's name away > > ------------------------------------------- > > > > Key: HBASE-4127 > > URL: https://issues.apache.org/jira/browse/HBASE-4127 > > Project: HBase > > Issue Type: Bug > > Components: client, master > > Affects Versions: 0.92.0 > > Reporter: Nicolas Spiegelberg > > Assignee: Nicolas Spiegelberg > > Priority: Blocker > > Attachments: HBASE-4127.patch > > > > > > One of the developers was using the default constructor for > HTableDescriptor, which is sadly a bad constructor that should never be > used. It made the tablename empty in META & caused an ERROR cycle as region > onlining kept failing. We should have never let this happen. Don't do table > modifications if the HTableDescriptor name doesn't match the table name > passed in. > > -- > This message is automatically generated by JIRA. > For more information on JIRA, see: http://www.atlassian.com/software/jira > > >
