Skip to content

Durable State broken after upgrading to slick 3.5.x #824

@sebastian-alfers

Description

@sebastian-alfers

When persisting a Durable State with slick 53.5.1, the following two errors show up:

ava.lang.NoClassDefFoundError: scala/reflect/api/Trees$TreeApi
	at slick.lifted.AnyOptionExtensionMethods$.getOrElse$extension(ExtensionMethods.scala:219)
	at akka.persistence.jdbc.state.DurableStateQueries.<init>(DurableStateQueries.scala:103)
	at akka.persistence.jdbc.state.javadsl.JdbcDurableStateStore.<init>(JdbcDurableStateStore.scala:40)
	at akka.persistence.jdbc.state.JdbcDurableStateStoreProvider.javadslDurableStateStore(JdbcDurableStateStoreProvider.scala:40)
	at akka.persistence.state.DurableStateStoreRegistry$$anon$1.javaDsl(DurableStateStoreRegistry.scala:41)
	at akka.persistence.state.DurableStateStoreRegistry$$anon$1.javaDsl(DurableStateStoreRegistry.scala:39)
	at akka.persistence.PersistencePlugin$$anon$1.createExtension(PersistencePlugin.scala:61)
	at akka.persistence.PersistencePlugin$$anon$1.createExtension(PersistencePlugin.scala:58)
	at akka.actor.ActorSystemImpl.registerExtension(ActorSystem.scala:1201)
	at akka.actor.ExtensionId.apply(Extension.scala:78)
	at akka.actor.ExtensionId.apply$(Extension.scala:77)
	at akka.persistence.PersistencePlugin$$anon$1.apply(PersistencePlugin.scala:58)
	at akka.persistence.PersistencePlugin.pluginFor(PersistencePlugin.scala:56)
	at akka.persistence.state.DurableStateStoreRegistry.durableStateStoreFor(DurableStateStoreRegistry.scala:81)
	at akka.persistence.typed.state.internal.BehaviorSetup.<init>(BehaviorSetup.scala:55)
	at akka.persistence.typed.state.internal.DurableStateBehaviorImpl.$anonfun$apply$2(DurableStateBehaviorImpl.scala:115)
	at akka.actor.typed.internal.BehaviorImpl$DeferredBehavior$$anon$1.apply(BehaviorImpl.scala:119)
	at akka.actor.typed.Behavior$.start(Behavior.scala:176)
	at akka.actor.typed.internal.InterceptorImpl$$anon$1.start(InterceptorImpl.scala:50)
	at akka.actor.typed.internal.AbstractSupervisor.aroundStart(Supervision.scala:78)
	at akka.actor.typed.internal.InterceptorImpl.preStart(InterceptorImpl.scala:73)
	at akka.actor.typed.internal.InterceptorImpl$.$anonfun$apply$1(InterceptorImpl.scala:30)
	at akka.actor.typed.internal.BehaviorImpl$DeferredBehavior$$anon$1.apply(BehaviorImpl.scala:119)
	at akka.actor.typed.Behavior$.start(Behavior.scala:176)
	at akka.actor.typed.internal.adapter.ActorAdapter.preStart(ActorAdapter.scala:292)
	at akka.actor.Actor.aroundPreStart(Actor.scala:548)
	at akka.actor.Actor.aroundPreStart$(Actor.scala:548)
	at akka.actor.typed.internal.adapter.ActorAdapter.aroundPreStart(ActorAdapter.scala:267)
	at akka.actor.ActorCell.create(ActorCell.scala:643)
	at akka.actor.ActorCell.invokeAll$1(ActorCell.scala:513)
	at akka.actor.ActorCell.systemInvoke(ActorCell.scala:535)
	at akka.dispatch.Mailbox.processAllSystemMessages(Mailbox.scala:295)
	at akka.dispatch.Mailbox.run(Mailbox.scala:230)
	at akka.dispatch.Mailbox.exec(Mailbox.scala:243)
	at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373)
	at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182)
	at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655)
	at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622)
	at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165)
Caused by: java.lang.ClassNotFoundException: scala.reflect.api.Trees$TreeApi
	at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:445)
	at sbt.internal.ManagedClassLoader.findClass(ManagedClassLoader.java:102)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:592)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)
	... 39 common frames omitted

as well as

java.lang.IllegalArgumentException: deferred [Deferred(PersistentWorldState.scala:26-31)] should not be passed to interpreter
	at akka.actor.typed.Behavior$.interpret(Behavior.scala:267)
	at akka.actor.typed.Behavior$.interpretMessage(Behavior.scala:238)
	at akka.actor.typed.internal.adapter.ActorAdapter.handleMessage(ActorAdapter.scala:133)
	at akka.actor.typed.internal.adapter.ActorAdapter.aroundReceive(ActorAdapter.scala:109)
	at akka.actor.ActorCell.receiveMessage(ActorCell.scala:579)
	at akka.actor.ActorCell.invoke(ActorCell.scala:547)
	at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:270)
	at akka.dispatch.Mailbox.run(Mailbox.scala:231)
	at akka.dispatch.Mailbox.exec(Mailbox.scala:243)
	at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373)
	at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182)
	at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655)
	at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622)
	at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165)

Interesting is that it seems that javadsl is involved even though this is a scala app.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions