This will be fixed (at least) in the 0.98.0 release.
On Sun, Jan 26, 2014 at 6:36 PM, tsuna <[email protected]> wrote: > Yes, I just ran into the same issue. Sigh. I guess one workaround is > to try to make AsyncHBase's jar show up first on the class path, > although that's not always as easy to do as it might sound. > > I'm copying hbase-dev so that they are aware of the problem. My trick > was ported to HBase in HBASE-9867, but it wasn't ported properly. It > doesn't look like the zeroCopyGetBytes helper is used in HBase (I > checked 0.96, 0.98, and trunk). So the best course of action seems to > be to fix the signature of the method in HBase. > > I created an issue and proposed a patch for HBase here: > https://issues.apache.org/jira/browse/HBASE-10422 > > On Tue, Jan 14, 2014 at 1:49 AM, <[email protected]> wrote: > > * hbase-protocol-0.96.1.1-hadoop2.jar > > * asynchbase-1.5.0-SNAPSHOT.jar > > > > Both packages contains class > > "com.google.protobuf.ZeroCopyLiteralByteString", but with different API: > > * public static byte[] zeroCopyGetBytes(ByteString buf) > > * public static byte[] zeroCopyGetBytes(final LiteralByteString buf) > > > > > > When running a program with both dependencies, following error will > occur in > > most cases: > > > > 14/01/14 13:45:41 ERROR async.RegionClient:1093 - Unexpected exception > from > > downstream on [id: 0x33adfae4, /127.0.0.1:37648 => /127.0.0.1:34508] > > java.lang.NoSuchMethodError: > > > com.google.protobuf.ZeroCopyLiteralByteString.zeroCopyGetBytes(Lcom/google/protobuf/ByteString;)[B > > at org.hbase.async.Bytes.get(Bytes.java:297) > > at org.hbase.async.KeyValue.fromCell(KeyValue.java:311) > > at org.hbase.async.GetRequest.convertResult(GetRequest.java:514) > > at org.hbase.async.GetRequest.extractResponse(GetRequest.java:496) > > at > > > org.hbase.async.RegionClient$1GetClosestRowBefore.deserialize(RegionClient.java:651) > > at org.hbase.async.RegionClient.decode(RegionClient.java:1308) > > at org.hbase.async.RegionClient.decode(RegionClient.java:89) > > at > > > org.jboss.netty.handler.codec.replay.ReplayingDecoder.callDecode(ReplayingDecoder.java:500) > > at > > > org.jboss.netty.handler.codec.replay.ReplayingDecoder.messageReceived(ReplayingDecoder.java:435) > > at > org.hbase.async.RegionClient.handleUpstream(RegionClient.java:1080) > > at > > > org.hbase.async.HBaseClient$RegionClientPipeline.sendUpstream(HBaseClient.java:2652) > > at > > org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268) > > at > > org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255) > > at > org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:88) > > at > > > org.jboss.netty.channel.socket.nio.AbstractNioWorker.process(AbstractNioWorker.java:108) > > at > > > org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:318) > > at > > > org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:89) > > at > org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178) > > at > > > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) > > at > > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) > > at java.lang.Thread.run(Thread.java:744) > > > > It will be very simple to rename ZeroCopyLiteralByteString class in > > asynchbase into something different and republish new jar. > > Hope, someone may propose better solution. > > > > -- > Benoit "tsuna" Sigoure > -- Best regards, - Andy Problems worthy of attack prove their worth by hitting back. - Piet Hein (via Tom White)
