I tried with 0.94 now. I added the htablePool to simulate my other
multi-thread environment. Here's the code: http://pastebin.com/7TBA1XGh
If line 70 is commented it returns not null. Am I doing something wrong?
> From: [email protected]
> Date: Mon, 11 Jun 2012 09:37:00 +0800
> Subject: Re: HBase Client API: Why does HTable.get(get).getValue() return
> null if more than one family is added to the get instance?
> To: [email protected]
>
> Hi Desert,
> I try your code on 0.94.0, it works fine. Is there any detail you not list
> above or maybe there exist some JIRAs fixed this bug for 0.92.2?
> Can someone get this test run on 0.92.2 and give the result?
>
> Regards,
> NN
>
> 2012/6/11 Desert R. <[email protected]>
>
> >
> > Sorry about my previous non-accurate description. Instead of 'family1' and
> > 'family2' I used 'facebook_notify' (qualifier-less) and 'facebook' (with 2
> > qualifiers). After I read your post, I replaced the column 'facebook' by
> > 'tweeter', a similar column that I have with 2 qualifiers also, and
> > everything worked fine.
> > So, the problem happens when I do it like this:
> >
> > HTable htable = new HTable(config, TABLE_NAME);
> > Get get = new Get(Bytes.toBytes("x"));
> > get.addFamily(Bytes.toBytes("facebook_notify"));
> > get.addFamily(Bytes.toBytes("facebook"));
> > if(htable.get(get).getValue(Bytes.toBytes("facebook_notify"),
> > Bytes.toBytes("")) == null)
> > log.debug("Value is null!");
> >
> > which still returns null.
> > I'm using version 0.92.2. Any idea?
> >
> > > From: [email protected]
> > > Date: Mon, 11 Jun 2012 00:15:17 +0530
> > > Subject: Re: HBase Client API: Why does HTable.get(get).getValue()
> > return null if more than one family is added to the get instance?
> > > To: [email protected]
> > >
> > > Hi,
> > >
> > > Am unable to reproduce this on 0.90.6 at least. What version are you
> > using?
> > >
> > > Regardless of "get.addFamily(Bytes.toBytes("family2"));" being present
> > > or not, I do not receive a null.
> > >
> > > Original table scan (of a table 't'), to match your qualifier-less f1
> > family:
> > >
> > > x column=f1:, timestamp=1339353441608, value=value
> > >
> > > And then again tried with a qualifier-added f2 family column:
> > >
> > > x column=f1:, timestamp=1339353441608, value=value
> > > x column=f2:x, timestamp=1339353614689, value=value
> > >
> > > With both these data sets am still unable to get the null returns. I
> > > only get a null if I instead comment the
> > > "get.addFamily(Bytes.toBytes("family1"));" family1 line, which is
> > > expected.
> > >
> > > Can you also detail out the steps you did to check this? Did you
> > > recreate rows/tables between tests?
> > >
> > > On Sun, Jun 10, 2012 at 9:20 PM, Desert R. <[email protected]>
> > wrote:
> > > >
> > > > Hi,
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > I have a table with 2 column families. The column 'family1'
> > > > has no qualifiers, and the row 'x' has the value \xFF. If I do the
> > > > following
> > > >
> > > > HTable htable = new HTable(config, TABLE_NAME);
> > > > Get get = new Get(Bytes.toBytes("x"));
> > > > get.addFamily(Bytes.toBytes("family1"));
> > > > if(htable.get(get).getValue(Bytes.toBytes("family1"),
> > Bytes.toBytes("")) == null)
> > > > log.debug("Value is null!");
> > > >
> > > >
> > > > the method getValue() returns not null (as expected). But if I add
> > other family:
> > > >
> > > > HTable htable = new HTable(config, TABLE_NAME);
> > > > Get get = new Get(Bytes.toBytes("x"));
> > > > get.addFamily(Bytes.toBytes("family1"));
> > > > get.addFamily(Bytes.toBytes("family2"));
> > > > if(htable.get(get).getValue(Bytes.toBytes("family1"),
> > Bytes.toBytes("")) == null)
> > > > log.debug("Value is null!");
> > > >
> > > >
> > > > I get a null. Why does this happen?
> > >
> > >
> > >
> > > --
> > > Harsh J
> >
> >