eclipse-store / store

High-Performance Java-Native-Persistence. Store and load any Java Object Graph or Subgraphs partially, Relieved of Heavy-weight JPA. Microsecond Response Time. Ultra-High Throughput. Minimum of Latencies. Create Ultra-Fast In-Memory Database Applications & Microservices.
https://eclipsestore.io/
Eclipse Public License 2.0
178 stars 17 forks source link

java.lang.ClassNotFoundException: sun.misc.Unsafe #200

Closed rpx99 closed 5 months ago

rpx99 commented 5 months ago

I tried Wicket as front end and using the Wicket Quickstart

mvn archetype:generate -DarchetypeGroupId=org.apache.wicket -DarchetypeArtifactId=wicket-archetype-quickstart -DarchetypeVersion=10.0.0 -DgroupId=com.mycompany -DartifactId=myproject -DarchetypeRepository=https://repository.apache.org/ -Dlog4j.properties=wildfly-doesnt-need-log4j.properties -DinteractiveMode=false

Deployment in Wilffly 31 and requesting of the webpage works as expected.

After adding the eclipse-store dependency to the POM and to class HomePage the line

final EmbeddedStorageManager storageManager = EmbeddedStorage.start();

I get an error with a new request:

`Root cause:

java.lang.ClassNotFoundException: sun.misc.Unsafe from [Module "deployment.myproject-1.0-SNAPSHOT.war" from Service Module Loader] at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:200) at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:410) at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398) at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:116) at deployment.myproject-1.0-SNAPSHOT.war//org.eclipse.serializer.memory.sun.JdkInternals.getMemoryAccess(JdkInternals.java:77) at deployment.myproject-1.0-SNAPSHOT.war//org.eclipse.serializer.memory.sun.JdkInternals.(JdkInternals.java:52) at deployment.myproject-1.0-SNAPSHOT.war//org.eclipse.serializer.memory.sun.JdkMemoryAccessor.guaranteeUsability(JdkMemoryAccessor.java:51) at deployment.myproject-1.0-SNAPSHOT.war//org.eclipse.serializer.memory.XMemory.guaranteeUsability(XMemory.java:329) at deployment.myproject-1.0-SNAPSHOT.war//org.eclipse.serializer.persistence.binary.types.Binary.(Binary.java:137) at deployment.myproject-1.0-SNAPSHOT.war//org.eclipse.serializer.persistence.binary.types.AbstractBinaryHandlerCustom.chars(AbstractBinaryHandlerCustom.java:87) at deployment.myproject-1.0-SNAPSHOT.war//org.eclipse.serializer.persistence.binary.java.lang.BinaryHandlerString.(BinaryHandlerString.java:44) at deployment.myproject-1.0-SNAPSHOT.war//org.eclipse.serializer.persistence.binary.java.lang.BinaryHandlerString.New(BinaryHandlerString.java:30) at deployment.myproject-1.0-SNAPSHOT.war//org.eclipse.serializer.persistence.binary.types.BinaryPersistence.createNativeHandlersValueTypes(BinaryPersistence.java:220) at deployment.myproject-1.0-SNAPSHOT.war//org.eclipse.serializer.persistence.binary.types.BinaryPersistence.createDefaultCustomTypeHandlerRegistry(BinaryPersistence.java:159) at deployment.myproject-1.0-SNAPSHOT.war//org.eclipse.serializer.persistence.binary.types.BinaryPersistenceFoundation$Default.lambda$ensureCustomTypeHandlerRegistryEnsurer$1(BinaryPersistenceFoundation.java:266) at deployment.myproject-1.0-SNAPSHOT.war//org.eclipse.serializer.persistence.binary.types.BinaryPersistenceFoundation$Default.ensureCustomTypeHandlerRegistry(BinaryPersistenceFoundation.java:278) at deployment.myproject-1.0-SNAPSHOT.war//org.eclipse.serializer.persistence.types.PersistenceFoundation$Default.getCustomTypeHandlerRegistry(PersistenceFoundation.java:977) at deployment.myproject-1.0-SNAPSHOT.war//org.eclipse.serializer.persistence.types.PersistenceFoundation$Default.ensureRootsProvider(PersistenceFoundation.java:2467) at deployment.myproject-1.0-SNAPSHOT.war//org.eclipse.serializer.persistence.types.PersistenceFoundation$Default.getRootsProvider(PersistenceFoundation.java:1342) at deployment.myproject-1.0-SNAPSHOT.war//org.eclipse.store.storage.embedded.types.EmbeddedStorageFoundation$Default.createEmbeddedStorageManager(EmbeddedStorageFoundation.java:792) at deployment.myproject-1.0-SNAPSHOT.war//org.eclipse.store.storage.embedded.types.EmbeddedStorage.createAndStartStorageManager(EmbeddedStorage.java:607) at deployment.myproject-1.0-SNAPSHOT.war//org.eclipse.store.storage.embedded.types.EmbeddedStorage.start(EmbeddedStorage.java:437) at deployment.myproject-1.0-SNAPSHOT.war//org.eclipse.store.storage.embedded.types.EmbeddedStorage.start(EmbeddedStorage.java:298) at deployment.myproject-1.0-SNAPSHOT.war//com.mycompany.HomePage.(HomePage.java:18) at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62) at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:502) at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486) at deployment.myproject-1.0-SNAPSHOT.war//org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:171) at deployment.myproject-1.0-SNAPSHOT.war//org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:76) at deployment.myproject-1.0-SNAPSHOT.war//org.apache.wicket.DefaultMapperContext.newPageInstance(DefaultMapperContext.java:90) at deployment.myproject-1.0-SNAPSHOT.war//org.apache.wicket.core.request.handler.PageProvider$Provision.getPage(PageProvider.java:369) at deployment.myproject-1.0-SNAPSHOT.war//org.apache.wicket.core.request.handler.PageProvider.getPageInstance(PageProvider.java:170) at deployment.myproject-1.0-SNAPSHOT.war//org.apache.wicket.request.handler.render.PageRenderer.getPage(PageRenderer.java:78) at deployment.myproject-1.0-SNAPSHOT.war//org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:231) at deployment.myproject-1.0-SNAPSHOT.war//org.apache.wicket.core.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:202) at deployment.myproject-1.0-SNAPSHOT.war//org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:910) at deployment.myproject-1.0-SNAPSHOT.war//org.apache.wicket.request.RequestHandlerExecutor.execute(RequestHandlerExecutor.java:63) at deployment.myproject-1.0-SNAPSHOT.war//org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:294) at deployment.myproject-1.0-SNAPSHOT.war//org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:255) at deployment.myproject-1.0-SNAPSHOT.war//org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:277) at deployment.myproject-1.0-SNAPSHOT.war//org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:208) at deployment.myproject-1.0-SNAPSHOT.war//org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:307) at io.undertow.servlet@2.3.10.Final//io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67) at io.undertow.servlet@2.3.10.Final//io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) at io.undertow.servlet@2.3.10.Final//io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84) at io.undertow.servlet@2.3.10.Final//io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62) at io.undertow.servlet@2.3.10.Final//io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68) at io.undertow.servlet@2.3.10.Final//io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) at org.wildfly.security.elytron-web.undertow-server@4.0.0.Final//org.wildfly.elytron.web.undertow.server.ElytronRunAsHandler.lambda$handleRequest$1(ElytronRunAsHandler.java:68) at org.wildfly.security.elytron-base@2.2.3.Final//org.wildfly.security.auth.server.FlexibleIdentityAssociation.runAsFunctionEx(FlexibleIdentityAssociation.java:103) at org.wildfly.security.elytron-base@2.2.3.Final//org.wildfly.security.auth.server.Scoped.runAsFunctionEx(Scoped.java:161) at org.wildfly.security.elytron-base@2.2.3.Final//org.wildfly.security.auth.server.Scoped.runAs(Scoped.java:73) at org.wildfly.security.elytron-web.undertow-server@4.0.0.Final//org.wildfly.elytron.web.undertow.server.ElytronRunAsHandler.handleRequest(ElytronRunAsHandler.java:67) at io.undertow.servlet@2.3.10.Final//io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68) at io.undertow.servlet@2.3.10.Final//io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:117) at io.undertow.servlet@2.3.10.Final//io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57) at io.undertow.core@2.3.10.Final//io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) at io.undertow.core@2.3.10.Final//io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46) at io.undertow.servlet@2.3.10.Final//io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64) at io.undertow.core@2.3.10.Final//io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43) at org.wildfly.security.elytron-web.undertow-server-servlet@4.0.0.Final//org.wildfly.elytron.web.undertow.server.servlet.CleanUpHandler.handleRequest(CleanUpHandler.java:38) at io.undertow.core@2.3.10.Final//io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) at org.wildfly.extension.undertow@31.0.0.Final//org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:44) at io.undertow.core@2.3.10.Final//io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) at org.wildfly.extension.undertow@31.0.0.Final//org.wildfly.extension.undertow.deployment.GlobalRequestControllerHandler.handleRequest(GlobalRequestControllerHandler.java:51) at io.undertow.servlet@2.3.10.Final//io.undertow.servlet.handlers.SendErrorPageHandler.handleRequest(SendErrorPageHandler.java:52) at io.undertow.core@2.3.10.Final//io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) at io.undertow.servlet@2.3.10.Final//io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:276) at io.undertow.servlet@2.3.10.Final//io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:135) at io.undertow.servlet@2.3.10.Final//io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:132) at io.undertow.servlet@2.3.10.Final//io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48) at io.undertow.servlet@2.3.10.Final//io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43) at org.wildfly.extension.undertow@31.0.0.Final//org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1413) at org.wildfly.extension.undertow@31.0.0.Final//org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1413) at org.wildfly.extension.undertow@31.0.0.Final//org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1413) at org.wildfly.extension.undertow@31.0.0.Final//org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1413) at io.undertow.servlet@2.3.10.Final//io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:256) at io.undertow.servlet@2.3.10.Final//io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:101) at io.undertow.core@2.3.10.Final//io.undertow.server.Connectors.executeRootHandler(Connectors.java:393) at io.undertow.core@2.3.10.Final//io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:859) at org.jboss.threads@2.4.0.Final//org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35) at org.jboss.threads@2.4.0.Final//org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1990) at org.jboss.threads@2.4.0.Final//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1486) at org.jboss.threads@2.4.0.Final//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1377) at org.jboss.xnio@3.8.12.Final//org.xnio.XnioWorker$WorkerThreadFactory$1$1.run(XnioWorker.java:1282) at java.base/java.lang.Thread.run(Thread.java:1583)`

I have seen some hint in the eclipse store docs related to

--add-exports java.base/jdk.internal.misc=ALL-UNNAMED

and I tried to add compiler args to maven compiler plugin and also added this to wildfly conf JAVA_OPTS,but still noc success.

Any ideas ? How to fix it?

Environment Details

zdenek-jonas commented 5 months ago

Bei Wildfly you have to add a file in the folder: src/main/webapp/WEB-INF/jboss-deployment-structure.xml

with content:

<jboss-deployment-structure>

    <deployment>

        <dependencies>
            <module name="jdk.unsupported" export="TRUE" />
        </dependencies>

    </deployment>

</jboss-deployment-structure>

But this is not an Eclipse Store issue, this is the standard behavior of the Wildfly server.

You can check our example with wildly: https://github.com/eclipse-store/store/tree/main/examples/wildfly-cdi4

rpx99 commented 5 months ago

Hi Jonas, thanks a lot - I missed that one. Works!