[ 
https://issues.apache.org/jira/browse/HBASE-21392?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16701798#comment-16701798
 ] 

Allan Yang commented on HBASE-21392:
------------------------------------

Two things. If we truly want to make HTable unusable after close, close check 
should be in every public method.
The other is that 
{code}
+  private void checkClose() {
+    if (closed) {
+      throw new IllegalStateException("Cannot put when the Table is closed.");
+    }
+  }
{code}
The message is weird, put is only one of the operation.
But I still want to +0 on this patch, since even for connection, we only check 
close for a few method. It is not problem need to be fix. Anyway, if someone 
else think this should be fixed, I'm OK to check this one only to 3.0.0. 
Because it will change the behave of client significantly. A release note 
should be added in the Jira too.

> HTable can still write data after calling the close method.
> -----------------------------------------------------------
>
>                 Key: HBASE-21392
>                 URL: https://issues.apache.org/jira/browse/HBASE-21392
>             Project: HBase
>          Issue Type: Improvement
>          Components: Client
>    Affects Versions: 1.2.0, 2.1.0, 2.0.0
>         Environment: HBase 1.2.0
>            Reporter: lixiaobao
>            Assignee: lixiaobao
>            Priority: Major
>         Attachments: HBASE-21392.patch, HBASE-21392.patch
>
>   Original Estimate: 1h
>  Remaining Estimate: 1h
>
> HTable can still write data after calling the close method.
>  
> {code:java}
> val conn = ConnectionFactory.createConnection(conf)
> var table = conn.getTable(TableName.valueOf(tableName))
> val put = new Put(rowKey.getBytes())
> put.addColumn("cf".getBytes(), columnField.getBytes(), endTimeLong, 
> Bytes.toBytes(line.getLong(8)))
> table.put(put)
> //call table close() method
> table.close()
> //put again
> val put1 = new Put(rowKey4.getBytes())
> out1.addColumn("cf".getBytes(), columnField.getBytes(), endTimeLong, 
> Bytes.toBytes(line.getLong(8)))
> table.put(put1)
> {code}
>  
> after call close method ,can alse write data into HBase,I think this does not 
> match close logic.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to