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) > > > > >