You should be passing the obtained rowLock object  as parameter for the
Constructor of put object.

On Friday, February 28, 2014, Shailesh Samudrala <shailesh2...@gmail.com>
wrote:

> >
> > I'm running a sample code I wrote to test HBase lockRow() and
> unlockRow() methods.
> > The sample code is below:
> >
> > HTable table = new HTable(config, "test");
> > RowLock rowLock = table.lockRow(Bytes.toBytes(row));
> > System.out.println("Obtained rowlock on " + row + "\nRowLock: " +
> rowLock);
> >
> > Put p = new Put(Bytes.toBytes(row));
> > p.add(Bytes.toBytes("colFamily"), Bytes.toBytes(colFamily),
> Bytes.toBytes(value));
> > table.put(p);
> > System.out.println("put row");
> > table.unlockRow(rowLock);
> > System.out.println("Unlocked row!");
> >
> >
> >  When I execute my code, I get an UnknownRowLockException. The
> > documentation says that this error is thrown when an unknown row lock is
> > passed to the region servers. I'm not sure how this is happening & how to
> > resolve it.
> >
> > The stack trace is below:
> >
> > Obtained rowlock on row2
> > RowLock: org.apache.hadoop.hbase.client.RowLock@15af33d6
> > put row
> > Exception in thread "main"
> org.apache.hadoop.hbase.UnknownRowLockException:
> org.apache.hadoop.hbase.UnknownRowLockException: 5763272717012243790
> >     at
> org.apache.hadoop.hbase.regionserver.HRegionServer.unlockRow(HRegionServer.java:2099)
> >     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.HBaseRPC$Server.call(HBaseRPC.java:604)
> >     at
> org.apache.hadoop.hbase.ipc.HBaseServer$Handler.run(HBaseServer.java:1055)
> >
> >     at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
> Method)
> >     at
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
> >     at
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
> >     at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
> >     at
> org.apache.hadoop.hbase.RemoteExceptionHandler.decodeRemoteException(RemoteExceptionHandler.java:96)
> >     at
> org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.translateException(HConnectionManager.java:1268)
> >     at
> org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getRegionServerWithRetries(HConnectionManager.java:1014)
> >     at org.apache.hadoop.hbase.client.HTable.unlockRow(HTable.java:870)
> >     at HelloWorld.Hello.HelloWorld.main(HelloWorld.java:41)
> >
> >
>

Reply via email to