Handle empty qualifier better in shell for increments
-----------------------------------------------------

                 Key: HBASE-3661
                 URL: https://issues.apache.org/jira/browse/HBASE-3661
             Project: HBase
          Issue Type: Improvement
          Components: shell
    Affects Versions: 0.92.0
            Reporter: Lars George
            Priority: Minor
             Fix For: 0.92.0


When trying to increment a counter using the examples, which specify no 
*explicit* qualifier you get an error:

{code}
hbase(main):014:0> incr 'testtable', 'cnt1', 'colfam1', 1

ERROR: org.apache.hadoop.hbase.client.RetriesExhaustedException: Trying to 
contact region server 10.0.0.57:51640 for region 
testtable,,1300267113942.cd2e7925140eb414d519621e384fb654., row 'cnt1', but 
failed after 7 attempts.
Exceptions:
java.io.IOException: java.io.IOException: java.lang.NullPointerException
        at 
org.apache.hadoop.hbase.regionserver.ColumnCount.<init>(ColumnCount.java:47)
        at 
org.apache.hadoop.hbase.regionserver.ExplicitColumnTracker.<init>(ExplicitColumnTracker.java:69)
        at 
org.apache.hadoop.hbase.regionserver.ScanQueryMatcher.<init>(ScanQueryMatcher.java:93)
        at 
org.apache.hadoop.hbase.regionserver.StoreScanner.<init>(StoreScanner.java:65)
        at 
org.apache.hadoop.hbase.regionserver.Store.getScanner(Store.java:1436)
        at 
org.apache.hadoop.hbase.regionserver.HRegion$RegionScanner.<init>(HRegion.java:2412)
        at 
org.apache.hadoop.hbase.regionserver.HRegion.instantiateInternalScanner(HRegion.java:1185)
        at 
org.apache.hadoop.hbase.regionserver.HRegion.getScanner(HRegion.java:1171)
        at 
org.apache.hadoop.hbase.regionserver.HRegion.getScanner(HRegion.java:1155)
        at 
org.apache.hadoop.hbase.regionserver.HRegion.getLastIncrement(HRegion.java:3087)
        at 
org.apache.hadoop.hbase.regionserver.HRegion.incrementColumnValue(HRegion.java:3312)
        at 
org.apache.hadoop.hbase.regionserver.HRegionServer.incrementColumnValue(HRegionServer.java:2570)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at 
org.apache.hadoop.hbase.ipc.WritableRpcEngine$Server.call(WritableRpcEngine.java:309)
        at 
org.apache.hadoop.hbase.ipc.HBaseServer$Handler.run(HBaseServer.java:1060)

Here is some help for this command:
Increments a cell 'value' at specified table/row/column coordinates.
To increment a cell value in table 't1' at row 'r1' under column
'c1' by 1 (can be omitted) or 10 do:

  hbase> incr 't1', 'r1', 'c1'
  hbase> incr 't1', 'r1', 'c1', 1
  hbase> incr 't1', 'r1', 'c1', 10
{code}

Handle this more gracefully (printing 5 stacktraces is ugly), improve the help 
to specify what is needed more clearly. Or fix the server side to support this, 
if this makes sense, and therefore never triggering this issue.

Adding a qualifier makes it work:

{code}
hbase(main):015:0> incr 'testtable', 'cnt1', 'colfam1:test', 1
COUNTER VALUE = 1

hbase(main):016:0> incr 'testtable', 'cnt1', 'colfam1:test', 1
COUNTER VALUE = 2
{code} 

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to