Uploaded image for project: 'Cassandra'
  1. Cassandra
  2. CASSANDRA-6007

Replace the deprecated MapMaker with CacheLoader for compatibility with Guava 15.0+

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Low
    • Resolution: Fixed
    • 1.2.10
    • None
    • None
    • Low

    Description

      Attempting to load datastax/java-driver 2.0 beta1 and cassandra-all 2.0 in the same jvm causes some issues mainly because of clashes between guava versions (15.0 in the driver vs 13.0.1 in c*). This makes automated testing using EmbeddedCassandraService problematic for instance.

      Stacktrace from https://github.com/mpenet/alia/tree/2.0 running "lein test"

      Upgrading c* 2.0 to guava 15+ should help fix this issue.

      java.lang.IllegalAccessError: tried to access method com.google.common.collect.MapMaker.makeComputingMap(Lcom/google/common/base/Function;)Ljava/util/concurrent/ConcurrentMap; from class org.apache.cassandra.service.StorageProxy
      	at org.apache.cassandra.service.StorageProxy.<clinit>(StorageProxy.java:87)
      	at java.lang.Class.forName0(Native Method)
      	at java.lang.Class.forName(Class.java:190)
      	at org.apache.cassandra.service.StorageService.initServer(StorageService.java:447)
      	at org.apache.cassandra.service.StorageService.initServer(StorageService.java:426)
      	at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:344)
      	at org.apache.cassandra.service.CassandraDaemon.init(CassandraDaemon.java:377)
      	at org.apache.cassandra.service.EmbeddedCassandraService.start(EmbeddedCassandraService.java:52)
      	at qbits.alia.test.embedded$start_service_BANG_.invoke(embedded.clj:20)
      	at qbits.alia.test.embedded$eval10911.invoke(embedded.clj:24)
      	at clojure.lang.Compiler.eval(Compiler.java:6619)
      	at clojure.lang.Compiler.load(Compiler.java:7064)
      	at clojure.lang.RT.loadResourceScript(RT.java:370)
      	at clojure.lang.RT.loadResourceScript(RT.java:361)
      	at clojure.lang.RT.load(RT.java:440)
      	at clojure.lang.RT.load(RT.java:411)
      	at clojure.core$load$fn__5018.invoke(core.clj:5530)
      	at clojure.core$load.doInvoke(core.clj:5529)
      	at clojure.lang.RestFn.invoke(RestFn.java:408)
      	at clojure.core$load_one.invoke(core.clj:5336)
      	at clojure.core$load_lib$fn__4967.invoke(core.clj:5375)
      	at clojure.core$load_lib.doInvoke(core.clj:5374)
      	at clojure.lang.RestFn.applyTo(RestFn.java:142)
      	at clojure.core$apply.invoke(core.clj:619)
      	at clojure.core$load_libs.doInvoke(core.clj:5413)
      	at clojure.lang.RestFn.applyTo(RestFn.java:137)
      	at clojure.core$apply.invoke(core.clj:621)
      	at clojure.core$use.doInvoke(core.clj:5507)
      	at clojure.lang.RestFn.invoke(RestFn.java:703)
      	at qbits.alia.test.core$eval161$loading__4910__auto____162.invoke(core.clj:1)
      	at qbits.alia.test.core$eval161.invoke(core.clj:1)
      	at clojure.lang.Compiler.eval(Compiler.java:6619)
      	at clojure.lang.Compiler.eval(Compiler.java:6608)
      	at clojure.lang.Compiler.load(Compiler.java:7064)
      	at clojure.lang.RT.loadResourceScript(RT.java:370)
      	at clojure.lang.RT.loadResourceScript(RT.java:361)
      	at clojure.lang.RT.load(RT.java:440)
      	at clojure.lang.RT.load(RT.java:411)
      	at clojure.core$load$fn__5018.invoke(core.clj:5530)
      	at clojure.core$load.doInvoke(core.clj:5529)
      	at clojure.lang.RestFn.invoke(RestFn.java:408)
      	at clojure.core$load_one.invoke(core.clj:5336)
      	at clojure.core$load_lib$fn__4967.invoke(core.clj:5375)
      	at clojure.core$load_lib.doInvoke(core.clj:5374)
      	at clojure.lang.RestFn.applyTo(RestFn.java:142)
      	at clojure.core$apply.invoke(core.clj:619)
      	at clojure.core$load_libs.doInvoke(core.clj:5413)
      	at clojure.lang.RestFn.applyTo(RestFn.java:137)
      	at clojure.core$apply.invoke(core.clj:619)
      	at clojure.core$require.doInvoke(core.clj:5496)
      	at clojure.lang.RestFn.applyTo(RestFn.java:137)
      	at clojure.core$apply.invoke(core.clj:619)
      	at user$eval85.invoke(NO_SOURCE_FILE:1)
      	at clojure.lang.Compiler.eval(Compiler.java:6619)
      	at clojure.lang.Compiler.eval(Compiler.java:6609)
      	at clojure.lang.Compiler.eval(Compiler.java:6582)
      	at clojure.core$eval.invoke(core.clj:2852)
      	at clojure.main$eval_opt.invoke(main.clj:308)
      	at clojure.main$initialize.invoke(main.clj:327)
      	at clojure.main$null_opt.invoke(main.clj:362)
      	at clojure.main$main.doInvoke(main.clj:440)
      	at clojure.lang.RestFn.invoke(RestFn.java:421)
      	at clojure.lang.Var.invoke(Var.java:419)
      	at clojure.lang.AFn.applyToHelper(AFn.java:163)
      	at clojure.lang.Var.applyTo(Var.java:532)
      	at clojure.main.main(main.java:37)
      
      

      Attachments

        1. 6007.txt
          4 kB
          Aleksey Yeschenko

        Activity

          People

            aleksey Aleksey Yeschenko
            mpenet Max Penet
            Aleksey Yeschenko
            Jonathan Ellis
            Votes:
            1 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: