[ https://issues.apache.org/jira/browse/HBASE-13327?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14380165#comment-14380165 ]
Solomon Duskis commented on HBASE-13327: ---------------------------------------- So I have a question to the group at large. I essentially copied the default behavior from HBaseAdmin compact/majorCompact(byte[]) which is not replicated in the complementary methods that take TableName as a parameter. Those methods in HBaseAdmin rely on IllegalArgumentException to differentiate between tableName and region. {code} @Deprecated public void majorCompact(final byte[] tableNameOrRegionName, final byte[] columnFamily) throws IOException { try { compactRegion(tableNameOrRegionName, columnFamily, true); } catch (IllegalArgumentException e) { // Invalid region, try table compact(TableName.valueOf(tableNameOrRegionName), columnFamily, true); } } {code} That's a bit unpleasant in HBaseAdmin and quite a bit worse from the perspective of the thrift server, since it relies on internal details. I need a nested try in order to 1) inner try - capture the HBaseAdmin logic to differentiate between region and table and 2) outer try - uniformly handle IOExceptions from either compactRegion or compact table [~tedyu] suggested the following logic: {code} try { if (TableName.isLegalTableQualifierName(tableNameOrRegionNameArray) { getAdmin().compact(TableName.valueOf(tableNameOrRegionNameArray)); } else { getAdmin().compactRegion(tableNameOrRegionNameArray); } } catch (IOException e) { LOG.warn(e.getMessage(), e); throw new IOError(e.getMessage()); } {code} If that makes sense, I'll supply an addendum with that logic. > Use Admin in ConnectionCache > ---------------------------- > > Key: HBASE-13327 > URL: https://issues.apache.org/jira/browse/HBASE-13327 > Project: HBase > Issue Type: Sub-task > Affects Versions: 2.0.0, 1.0.1, 1.1.0 > Reporter: Solomon Duskis > Assignee: Solomon Duskis > Fix For: 2.0.0, 1.0.1, 1.1.0 > > Attachments: HBASE-13327.patch > > > Replace HBaseAdmin usage with Admin in ConnectionCache and users of > ConnectionCache. -- This message was sent by Atlassian JIRA (v6.3.4#6332)