Skip to content

Binary incompatibility with cassandra 1.2.6 #352

@tsachev

Description

@tsachev

Hi I am trying to update my dependencies to the latest cassandara 1.2.x version currently 1.2.6.
There seems to be binary incompatibility in cassandra thirft TBinaryProtocol.
The constructor signature has been changed. :(.
I think that using TBinaryProtocol.Factory instead of TBinaryProtocol will fix the problem.

so

cassandraClient = new Cassandra.Client(new TBinaryProtocol(transport));

in ThriftConnection.open should become

cassandraClient = new Cassandra.Client(new TBinaryProtocol.Factory().getProtocol(transport));

Here is the stack trace for reference.

java.lang.NoSuchMethodError: org.apache.cassandra.thrift.TBinaryProtocol: method <init>(Lorg/apache/thrift/transport/TTransport;)V not found
at com.netflix.astyanax.thrift.ThriftSyncConnectionFactoryImpl$ThriftConnection.open(ThriftSyncConnectionFactoryImpl.java:195)
at com.netflix.astyanax.thrift.ThriftSyncConnectionFactoryImpl$ThriftConnection$1.run(ThriftSyncConnectionFactoryImpl.java:232)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
at java.lang.Thread.run(Thread.java:662)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions