-
Notifications
You must be signed in to change notification settings - Fork 4.4k
Closed
Description
After upgrading gson to version 2.8.3 I receive a NoClassDefFoundError when starting up my WildFly 12 server.
Reproducer:
public class Foo {
private static final Gson gson = new GsonBuilder().create();
}Stacktrace:
Caused by: java.lang.NoClassDefFoundError: sun/misc/Unsafe
at com.google.gson//com.google.gson.internal.reflect.UnsafeReflectionAccessor.getUnsafeInstance(UnsafeReflectionAccessor.java:47)
at com.google.gson//com.google.gson.internal.reflect.UnsafeReflectionAccessor.<init>(UnsafeReflectionAccessor.java:31)
at com.google.gson//com.google.gson.internal.reflect.ReflectionAccessor.<clinit>(ReflectionAccessor.java:36)
at com.google.gson//com.google.gson.internal.ConstructorConstructor.<init>(ConstructorConstructor.java:51)
at com.google.gson//com.google.gson.Gson.<init>(Gson.java:205)
at com.google.gson//com.google.gson.GsonBuilder.create(GsonBuilder.java:597)
at deployment.Foo.ear//Foo.<clinit>(Foo.java:24)
...
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:488)
at java.base/java.lang.Class.newInstance(Class.java:558)
at org.jboss.as.weld.common//org.jboss.as.weld.deployment.WeldPortableExtensions.tryRegisterExtension(WeldPortableExtensions.java:53)
at org.jboss.as.weld//org.jboss.as.weld.deployment.processors.WeldPortableExtensionProcessor.loadAttachments(WeldPortableExtensionProcessor.java:119)
at org.jboss.as.weld//org.jboss.as.weld.deployment.processors.WeldPortableExtensionProcessor.deploy(WeldPortableExtensionProcessor.java:79)
at [email protected]//org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:144)
... 8 more
Workaround in WildFly 12 module.xml:
<module xmlns="urn:jboss:module:1.1" name="com.google.gson">
<resources>
<resource-root path="gson-2.8.3.jar"/>
</resources>
<dependencies>
<module name="sun.jdk" export="true" >
<imports>
<include path="sun/misc/Unsafe" />
</imports>
</module>
</dependencies>
</module>Question:
Why did gson introduce this weird dependency?
Metadata
Metadata
Assignees
Labels
No labels