[
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)