java.lang.VerifyError Incompatible argument to function

akka, sbt, scala, spray

Solution

Unfortunately, 1.2-M8 is not compatible with Akka 2.2.0 final. Either use Akka 2.2.0-RC1 or upgrade to a more recent nightly build of spray 1.2.

UPDATE: Also, by now the final version has been released, so you can use version 1.2.0 with the latest Akka 2.2.3.

Problem

I am getting a strange error with `sbt run` for a Spray example app I wrote, it compiles fine, and I only get the error on my personal computer because it works fine on another computer. Here's what I think is the relevant source, it's the template code from Spray sample code but I don't think it's the cause. ``` package spray.examples import akka.actor.{ActorSystem, Props} import akka.io.IO import spray.can.Http object Boot extends App { implicit val system = ActorSystem() // the handler actor replies to incoming HttpRequests val handler = system.actorOf(Props[DemoServiceActor], name = "handler") IO(Http) ! Http.Bind(handler, interface = "localhost", port = 8080) } ``` Here's the stack trace ``` Uncaught error from thread [default-akka.actor.default-dispatcher-3] shutting down JVM since 'akka.jvm-exit-on-fatal-error' is enabled for ActorSystem[default] java.lang.VerifyError: (class: spray/can/server/HttpListener, method: <init> signature: (Lakka/actor/ActorRef;Lspray/can/Http$Bind;Lspray/can/HttpExt$Settings;)V) Incompatible argument to function at spray.can.HttpManager$$anonfun$receive$1$$anonfun$applyOrElse$1.apply(HttpManager.scala:65) at spray.can.HttpManager$$anonfun$receive$1$$anonfun$applyOrElse$1.apply(HttpManager.scala:65) at akka.actor.CreatorFunctionConsumer.produce(Props.scala:369) at akka.actor.Props.newActor(Props.scala:323) at akka.actor.ActorCell.newActor(ActorCell.scala:534) at akka.actor.ActorCell.create(ActorCell.scala:560) at akka.actor.ActorCell.invokeAll$1(ActorCell.scala:425) at akka.actor.ActorCell.systemInvoke(ActorCell.scala:447) at akka.dispatch.Mailbox.processAllSystemMessages(Mailbox.scala:262) at akka.dispatch.Mailbox.run(Mailbox.scala:218) at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:386) at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260) at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339) at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979) at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107) ``` As indicated in the comments, this is likely a `classpath` issue but I don't know how to debug that. Coincidentally, or not, this happened after I upgraded from stock Mac OS X Java 6 to Java 7, I have Java 7 on both machines. Any insights will be much appreciated. In case this might help, here's the `classpath` dump from `sbt console`, it's the same for compile and runtime ``` List(Attributed(/Users/bob/projects/spray-file-upload/target/scala-2.10/classes), Attributed(/Users/bob/.sbt/0.12.4/boot/scala-2.10.2/lib/scala-library.jar), Attributed(/Users/bob/.ivy2/cache/com.typesafe.akka/akka-actor_2.10/jars/akka-actor_2.10- 2.2.0.jar), Attributed(/Users/bob/.ivy2/cache/com.typesafe/config/bundles/config-1.0.2.jar), Attributed(/Users/bob/.ivy2/cache/io.spray/spray-json_2.10/jars/spray-json_2.10-1.2.5.jar), Attributed(/Users/bob/.ivy2/cache/org.parboiled/parboiled-scala_2.10/bundles/parboiled- scala_2.10-1.1.5.jar), Attributed(/Users/bob/.ivy2/cache/org.parboiled/parboiled- core/bundles/parboiled-core-1.1.5.jar), Attributed(/Users/bob/.ivy2/cache/io.spray/spray- can/jars/spray-can-1.2-M8.jar), Attributed(/Users/bob/.ivy2/cache/io.spray/spray- io/jars/spray-io-1.2-M8.jar), Attributed(/Users/bob/.ivy2/cache/io.spray/spray- util/jars/spray-util-1.2-M8.jar), Attributed(/Users/bob/.ivy2/cache/io.spray/spray- http/jars/spray-http-1.2-M8.jar), Attributed(/Users/bob/.ivy2/cache/io.spray/spray- httpx/jars/spray-httpx-1.2-M8.jar), Attributed(/Users/bob/.ivy2/cache/org.jvnet.mimepull/mimepull/jars/mimepull-1.9.2.jar), Attributed(/Users/bob/.ivy2/cache/io.spray/spray-routing/jars/spray-routing-1.2-M8.jar), Attributed(/Users/bob/.ivy2/cache/com.chuusai/shapeless_2.10/jars/shapeless_2.10-1.2.4.jar)) ``` If anyone cares to try a fresh compile with Java 7 and then `sbt run`, feel free to grab it from the repo.

Original source

Related problems