akka/akka-core

akka.util.Unsafe fails with exception on JDK 11 when using modules and not loading `jdk.unsupported`

Aperta

#25.640 aperta il 18 set 2018

 (16 commenti) (2 reazioni) (0 assegnatari)Scala (3547 fork)batch import
1 - triagedhelp wantedt:jdkt:jdk-next

Metriche repository

Star
 (13.277 stelle)
Metriche merge PR
 (Merge medio 8g 19h) (10 PR mergiate in 30 g)

Descrizione

On JDK 11, akka.util.Unsafe fails with exception even before reaching the point where it would check for Java9+. The reason is that accessing sun.misc.Unsafe is no longer allowed.

Looking at the code in master this would happen with the latest version as well.

Exception in thread "main" java.lang.ExceptionInInitializerError at akka.dispatch.AbstractNodeQueue.(AbstractNodeQueue.java:181) at akka.actor.LightArrayRevolverScheduler.(LightArrayRevolverScheduler.scala:157) at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490) at akka.actor.ReflectiveDynamicAccess.$anonfun$createInstanceFor$1(ReflectiveDynamicAccess.scala:33) at scala.util.Try$.apply(Try.scala:209) at akka.actor.ReflectiveDynamicAccess.createInstanceFor(ReflectiveDynamicAccess.scala:28) at akka.actor.ReflectiveDynamicAccess.$anonfun$createInstanceFor$4(ReflectiveDynamicAccess.scala:39) at scala.util.Success.flatMap(Try.scala:247) at akka.actor.ReflectiveDynamicAccess.createInstanceFor(ReflectiveDynamicAccess.scala:39) at akka.actor.ActorSystemImpl.createScheduler(ActorSystem.scala:876) at akka.actor.ActorSystemImpl.(ActorSystem.scala:767) at akka.actor.ActorSystem$.apply(ActorSystem.scala:246) at akka.actor.ActorSystem$.apply(ActorSystem.scala:289) at akka.actor.ActorSystem$.apply(ActorSystem.scala:234) at akka.actor.ActorSystem$.create(ActorSystem.scala:169) at akka.actor.ActorSystem.create(ActorSystem.scala) at ... Caused by: java.lang.ExceptionInInitializerError at akka.util.Unsafe.(Unsafe.java:42) at akka.dispatch.AbstractNodeQueue.(AbstractNodeQueue.java:179) ... 20 more Caused by: java.lang.NoClassDefFoundError: sun/misc/Unsafe at akka.util.Unsafe.(Unsafe.java:22) ... 21 more Caused by: java.lang.ClassNotFoundException: sun.misc.Unsafe at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)

Guida contributor