HTable.checkAndPut/Delete doesn't handle null values
----------------------------------------------------
Key: HBASE-2920
URL: https://issues.apache.org/jira/browse/HBASE-2920
Project: HBase
Issue Type: Bug
Affects Versions: 0.89.20100621
Reporter: Jean-Daniel Cryans
Priority: Critical
Fix For: 0.90.0
>From John Beatty on the ML:
{quote}
Thanks Ryan, but I seem to be missing something then. It NPEs for me.
When running against 0.89.20100726 and providing a null expected value
I get the below stack trace (and works like a champ when I provide a
byte[0]. I also don't see the transformation you're referring to in
HTable.
(for reference,
http://svn.apache.org/viewvc/hbase/branches/0.89.20100726/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java?view=markup)
java.io.IOException: java.io.IOException: java.lang.NullPointerException
at
org.apache.hadoop.hbase.regionserver.HRegionServer.convertThrowableToIOE(HRegionServer.java:845)
at
org.apache.hadoop.hbase.regionserver.HRegionServer.convertThrowableToIOE(HRegionServer.java:835)
at
org.apache.hadoop.hbase.regionserver.HRegionServer.checkAndMutate(HRegionServer.java:1754)
at
org.apache.hadoop.hbase.regionserver.HRegionServer.checkAndPut(HRegionServer.java:1773)
at sun.reflect.GeneratedMethodAccessor8.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at org.apache.hadoop.hbase.ipc.HBaseRPC$Server.call(HBaseRPC.java:576)
at
org.apache.hadoop.hbase.ipc.HBaseServer$Handler.run(HBaseServer.java:919)
Caused by: java.lang.NullPointerException
at
org.apache.hadoop.hbase.regionserver.HRegion.checkAndMutate(HRegion.java:1616)
at
org.apache.hadoop.hbase.regionserver.HRegionServer.checkAndMutate(HRegionServer.java:1751)
... 6 more
{quote}
Looking in the code, I'm not sure either where the null conversion is done,
even worse is that we don't even have unit tests! It should be put
intoTestFromClientSide.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.