Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
sebastian-alfers opened this issue Apr 16, 2024 · 2 comments
Open

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

sebastian-alfers opened this issue Apr 16, 2024 · 2 comments
Milestone

Comments

@sebastian-alfers
Copy link
Contributor

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.

@johanandren
Copy link
Member

Upstream problem in Slick: slick/slick#2933

@johanandren
Copy link
Member

A workaround is to add an explicit dependency on scala-reflect

@johanandren johanandren added this to the 5.4.1 milestone May 8, 2024
ennru pushed a commit that referenced this issue May 8, 2024
Direct dependency on scala-reflect sorts it until upstream is fixed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants