[ https://issues.apache.org/jira/browse/HBASE-17212?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Yu Li updated HBASE-17212: -------------------------- Description: If we run below codes: {code} Table table = connection.getTable(null); {code} we will see below exception: {noformat} java.lang.NullPointerException at org.apache.hadoop.hbase.client.HTable.finishSetup(HTable.java:221) at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:182) at org.apache.hadoop.hbase.client.ConnectionImplementation.getTable(ConnectionImplementation.java:298) at org.apache.hadoop.hbase.client.ConnectionImplementation.getTable(ConnectionImplementation.java:293) {noformat} And in this JIRA we will add a null checker and throw a more graceful {{IllegalArgumentException}} For RegionServerCallable, we're lacking of some null checker when using table name, such as in {{RegionServerCallable#prepare}}: {code} public void prepare(final boolean reload) throws IOException { // check table state if this is a retry if (reload && !tableName.equals(TableName.META_TABLE_NAME) && getConnection().isTableDisabled(tableName)) { throw new TableNotEnabledException(tableName.getNameAsString() + " is disabled."); } {code} It will throw NPE if tableName is null and invoking {{tableName.equals}}. We'll add null checker in such places. was: If we run below codes: {code} Table table = connection.getTable(null); {code} we will see below exception: {noformat} java.lang.NullPointerException at org.apache.hadoop.hbase.client.HTable.finishSetup(HTable.java:221) at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:182) at org.apache.hadoop.hbase.client.ConnectionImplementation.getTable(ConnectionImplementation.java:298) at org.apache.hadoop.hbase.client.ConnectionImplementation.getTable(ConnectionImplementation.java:293) {noformat} And in this JIRA we will add a null checker and throw a more graceful {{IllegalArgumentException}} > Should add null checker on table name in HTable constructor and > RegionServerCallable > ------------------------------------------------------------------------------------ > > Key: HBASE-17212 > URL: https://issues.apache.org/jira/browse/HBASE-17212 > Project: HBase > Issue Type: Improvement > Affects Versions: 2.0.0 > Reporter: Yu Li > Assignee: Yu Li > Fix For: 2.0.0, 1.4.0 > > Attachments: HBASE-17212.patch, HBASE-17212.v2.patch > > > If we run below codes: > {code} > Table table = connection.getTable(null); > {code} > we will see below exception: > {noformat} > java.lang.NullPointerException > at org.apache.hadoop.hbase.client.HTable.finishSetup(HTable.java:221) > at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:182) > at > org.apache.hadoop.hbase.client.ConnectionImplementation.getTable(ConnectionImplementation.java:298) > at > org.apache.hadoop.hbase.client.ConnectionImplementation.getTable(ConnectionImplementation.java:293) > {noformat} > And in this JIRA we will add a null checker and throw a more graceful > {{IllegalArgumentException}} > For RegionServerCallable, we're lacking of some null checker when using table > name, such as in {{RegionServerCallable#prepare}}: > {code} > public void prepare(final boolean reload) throws IOException { > // check table state if this is a retry > if (reload && !tableName.equals(TableName.META_TABLE_NAME) && > getConnection().isTableDisabled(tableName)) { > throw new TableNotEnabledException(tableName.getNameAsString() + " is > disabled."); > } > {code} > It will throw NPE if tableName is null and invoking {{tableName.equals}}. > We'll add null checker in such places. -- This message was sent by Atlassian JIRA (v6.3.4#6332)