[ 
https://issues.apache.org/jira/browse/CASSANDRA-6030?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13799295#comment-13799295
 ] 

Chris Cleveland commented on CASSANDRA-6030:
--------------------------------------------

This is a major issue for us. It's a show-stopper.

The problem is that the Datastax java driver 2.x depends on the lz4 library, 
version 1.2.0. Cassandra-all 2.0.1 depends on lz4 version 1.1.0. The two 
versions are incompatible. 

What this means is that you can't use the Datastax driver in the same JVM as 
Cassandra, which means that you can't do embedded Cassandra at all.

It's probable that no one detected the problem because it doesn't show up when 
Cassandra and the driver are in different JVMs with different classpaths.

The solution is simple: upgrade Cassandra to use 1.2.0 of the lz4 library. I 
think it would be a bad idea to force the Datastax driver back to an earlier 
version.

> java.lang.IncompatibleClassChangeError when starting EmbeddedCassandraService
> -----------------------------------------------------------------------------
>
>                 Key: CASSANDRA-6030
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-6030
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core, Documentation & website
>         Environment: Linux 64 bit Ubuntu, JAVA 1.7
>            Reporter: Jinder Aujla
>         Attachments: jar hell.png
>
>
> When I try to start EmbeddedCassandraService thus:
> EmbeddedCassandraService cassandra = new EmbeddedCassandraService();
> cassandra.start();
> I get the following exception
> java.lang.IncompatibleClassChangeError: Found interface 
> net.jpountz.lz4.LZ4Decompressor, but class was expected
>       at 
> org.apache.cassandra.io.compress.LZ4Compressor.uncompress(LZ4Compressor.java:84)
>       at 
> org.apache.cassandra.io.compress.CompressedRandomAccessReader.decompressChunk(CompressedRandomAccessReader.java:116)
>       at 
> org.apache.cassandra.io.compress.CompressedRandomAccessReader.reBuffer(CompressedRandomAccessReader.java:85)
>       at 
> org.apache.cassandra.io.util.RandomAccessReader.seek(RandomAccessReader.java:275)
>       at 
> org.apache.cassandra.io.util.PoolingSegmentedFile.getSegment(PoolingSegmentedFile.java:42)
>       at 
> org.apache.cassandra.io.sstable.SSTableReader.getFileDataInput(SSTableReader.java:1093)
>       at 
> org.apache.cassandra.db.columniterator.SimpleSliceReader.<init>(SimpleSliceReader.java:57)
>       at 
> org.apache.cassandra.db.columniterator.SSTableSliceIterator.createReader(SSTableSliceIterator.java:65)
>       at 
> org.apache.cassandra.db.columniterator.SSTableSliceIterator.<init>(SSTableSliceIterator.java:42)
>       at 
> org.apache.cassandra.db.filter.SliceQueryFilter.getSSTableColumnIterator(SliceQueryFilter.java:171)
>       at 
> org.apache.cassandra.db.filter.QueryFilter.getSSTableColumnIterator(QueryFilter.java:62)
>       at 
> org.apache.cassandra.db.CollationController.collectAllData(CollationController.java:269)
>       at 
> org.apache.cassandra.db.CollationController.getTopLevelColumns(CollationController.java:53)
>       at 
> org.apache.cassandra.db.ColumnFamilyStore.getTopLevelColumns(ColumnFamilyStore.java:1469)
>       at 
> org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1295)
>       at org.apache.cassandra.db.Keyspace.getRow(Keyspace.java:332)
>       at 
> org.apache.cassandra.db.SliceFromReadCommand.getRow(SliceFromReadCommand.java:65)
>       at 
> org.apache.cassandra.cql3.statements.SelectStatement.readLocally(SelectStatement.java:231)
>       at 
> org.apache.cassandra.cql3.statements.SelectStatement.executeInternal(SelectStatement.java:249)
>       at 
> org.apache.cassandra.cql3.statements.SelectStatement.executeInternal(SelectStatement.java:56)
>       at 
> org.apache.cassandra.cql3.QueryProcessor.processInternal(QueryProcessor.java:151)
>       at 
> org.apache.cassandra.db.SystemKeyspace.checkHealth(SystemKeyspace.java:459)
>       at 
> org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:227)
>       at 
> org.apache.cassandra.service.CassandraDaemon.init(CassandraDaemon.java:377)
>       at 
> org.apache.cassandra.service.EmbeddedCassandraService.start(EmbeddedCassandraService.java:52)



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to