Minor correction to my previous email: BinaryComparator instance was initialized with "value".getBytes(). Comparison to "x".getBytes() and null gave return value of positive number with the aforementioned fix.
Cheers On Fri, Jul 3, 2015 at 3:04 PM, Ted Yu <[email protected]> wrote: > You want to check whether one of the conditions is met, right ? > > Looking at the second variant of checkAndPut(), HTable uses > BinaryComparator. > I wrote some simple code involving call to BinaryComparator.compareTo(). > > I had to fix the following: > Caused by: java.lang.NullPointerException > > at > org.apache.hadoop.hbase.filter.ByteArrayComparable.compareTo(ByteArrayComparable.java:85) > > with http://pastebin.com/UJ7eJ6zQ > > What I found was that comparison to "value".getBytes() and null both gave > positive return value. > > FYI > > On Fri, Jul 3, 2015 at 2:43 PM, James Young <[email protected]> wrote: > >> Hi, >> >> I need to have a checkandput operation for the following condition: >> >> 1: null >> 2: with value less than specified value. >> >> >> I know it has two versions for checkandput and I can implement either >> condition with one of requests. But I don't know how I can check both >> conditions with one atomic call. >> >> Thanks in advance! >> >> James >> >> boolean*checkAndPut >> < >> https://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/HTable.html#checkAndPut(byte[],%20byte[],%20byte[],%20byte[],%20org.apache.hadoop.hbase.client.Put) >> >*(byte[] >> row, >> byte[] family, byte[] qualifier, byte[] value, Put >> <https://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/Put.html >> > >> put) >> Atomically checks if a row/family/qualifier value matches the expected >> value. >> boolean*checkAndPut >> < >> https://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/HTable.html#checkAndPut(byte[],%20byte[],%20byte[],%20org.apache.hadoop.hbase.filter.CompareFilter.CompareOp,%20byte[],%20org.apache.hadoop.hbase.client.Put) >> >*(byte[] >> row, >> byte[] family, byte[] qualifier, CompareFilter.CompareOp >> < >> https://hbase.apache.org/apidocs/org/apache/hadoop/hbase/filter/CompareFilter.CompareOp.html >> > >> compareOp, >> byte[] value,Put >> <https://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/Put.html >> > >> put) >> > >
