Alexander Radzin created CASSANDRA-7358:
-------------------------------------------
Summary: Cassandra is still using guava 15
Key: CASSANDRA-7358
URL: https://issues.apache.org/jira/browse/CASSANDRA-7358
Project: Cassandra
Issue Type: Improvement
Reporter: Alexander Radzin
The problem is that Cassandra still depends on guava 15 while CQL Driver
depends on guava 16. Attempts to run both in the same process (that is typical
for embedding cassandra e.g. for unit tests) causes incompatibility problems:
{noformat}
java.lang.NoSuchMethodError:
com.google.common.util.concurrent.RateLimiter.acquire(I)V
at
org.apache.cassandra.io.compress.CompressedThrottledReader.reBuffer(CompressedThrottledReader.java:40)
at
org.apache.cassandra.io.util.RandomAccessReader.seek(RandomAccessReader.java:280)
at
org.apache.cassandra.io.sstable.SSTableScanner$KeyScanningIterator.computeNext(SSTableScanner.java:262)
at
org.apache.cassandra.io.sstable.SSTableScanner$KeyScanningIterator.computeNext(SSTableScanner.java:203)
at
com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at
com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at
org.apache.cassandra.io.sstable.SSTableScanner.hasNext(SSTableScanner.java:183)
at
org.apache.cassandra.utils.MergeIterator$Candidate.advance(MergeIterator.java:144)
at
org.apache.cassandra.utils.MergeIterator$ManyToOne.<init>(MergeIterator.java:87)
at org.apache.cassandra.utils.MergeIterator.get(MergeIterator.java:46)
at
org.apache.cassandra.db.compaction.CompactionIterable.iterator(CompactionIterable.java:47)
at
org.apache.cassandra.db.compaction.CompactionTask.runWith(CompactionTask.java:129)
at
org.apache.cassandra.io.util.DiskAwareRunnable.runMayThrow(DiskAwareRunnable.java:48)
at
org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28)
at
org.apache.cassandra.db.compaction.CompactionTask.executeInternal(CompactionTask.java:60)
at
org.apache.cassandra.db.compaction.AbstractCompactionTask.execute(AbstractCompactionTask.java:59)
at
org.apache.cassandra.db.compaction.CompactionManager$BackgroundCompactionTask.run(CompactionManager.java:198)
at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
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)
{noformat}
Method {{acquire()}} from class
{{com.google.common.util.concurrent.RateLimiter}} accepts one {{int}} parameter
but its return value changed. It was {{void}} but now it is {{double}}. As far
as I understand this is the reason for attached exception.
This problem does not allow us to upgrade CQL driver to version newer than
{{2.0.0-rc2}}.
--
This message was sent by Atlassian JIRA
(v6.2#6252)