Payara icon indicating copy to clipboard operation
Payara copied to clipboard

Bug Report: [6.2025.6] JDK 24 deployment failure

Open ctabin opened this issue 6 months ago • 3 comments

Brief Summary

Hello,

As state in the 6.2025.6 changelog, Payara is now compatible with the JDK24. Hence I tried to deploy our application (which runs fine in the same version on JDK21) and we get an error during the deployment.

Expected Outcome

The application deploys.

Current Outcome

Under the JDK24 we get the following exception:

INFO: jts.startup_msg
Jun 12, 2025 11:22:42 AM org.glassfish.internal.data.ModuleInfo load
SEVERE: Exception while invoking class org.glassfish.ejb.startup.EjbDeployer load method
java.lang.RuntimeException: EJB Container initialization error
        at org.glassfish.ejb.startup.EjbApplication.loadContainers(EjbApplication.java:237)
        at org.glassfish.ejb.startup.EjbDeployer.load(EjbDeployer.java:286)
        at org.glassfish.ejb.startup.EjbDeployer.load(EjbDeployer.java:104)
        at org.glassfish.internal.data.ModuleInfo.load(ModuleInfo.java:218)
        at org.glassfish.internal.data.ApplicationInfo.load(ApplicationInfo.java:334)
        at com.sun.enterprise.v3.server.ApplicationLifecycle.prepare(ApplicationLifecycle.java:571)
        at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:570)
        at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:556)
        at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:552)
        at java.base/jdk.internal.vm.ScopedValueContainer.callWithoutScope(ScopedValueContainer.java:162)
        at java.base/jdk.internal.vm.ScopedValueContainer.call(ScopedValueContainer.java:147)
        at java.base/java.lang.ScopedValue$Carrier.call(ScopedValue.java:422)
        at java.base/javax.security.auth.Subject.callAs(Subject.java:331)
        at java.base/javax.security.auth.Subject.doAs(Subject.java:379)
        at com.sun.enterprise.v3.admin.CommandRunnerImpl$2.execute(CommandRunnerImpl.java:551)
        at com.sun.enterprise.v3.admin.CommandRunnerImpl$3.run(CommandRunnerImpl.java:582)
        at com.sun.enterprise.v3.admin.CommandRunnerImpl$3.run(CommandRunnerImpl.java:574)
        at java.base/jdk.internal.vm.ScopedValueContainer.callWithoutScope(ScopedValueContainer.java:162)
        at java.base/jdk.internal.vm.ScopedValueContainer.call(ScopedValueContainer.java:147)
        at java.base/java.lang.ScopedValue$Carrier.call(ScopedValue.java:422)
        at java.base/javax.security.auth.Subject.callAs(Subject.java:331)
        at java.base/javax.security.auth.Subject.doAs(Subject.java:379)
        at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:573)
        at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1497)
        at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1879)
        at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1755)
        at com.sun.enterprise.admin.cli.embeddable.DeployerImpl.deploy(DeployerImpl.java:131)
Caused by: java.lang.RuntimeException: IIOP Protocol Manager initialization failed.  Possible cause is that ORB is not available in this container
        at com.sun.ejb.containers.BaseContainer.initializeProtocolManager(BaseContainer.java:927)
        at com.sun.ejb.containers.BaseContainer.<init>(BaseContainer.java:652)
        at com.sun.ejb.containers.StatelessSessionContainer.<init>(StatelessSessionContainer.java:141)
        at com.sun.ejb.containers.StatelessSessionContainer.<init>(StatelessSessionContainer.java:136)
        at com.sun.ejb.containers.StatelessContainerFactory.createContainer(StatelessContainerFactory.java:61)
        at org.glassfish.ejb.startup.EjbApplication.loadContainers(EjbApplication.java:225)
        ... 32 more
Caused by: java.lang.NoSuchMethodError: 'void sun.misc.Unsafe.ensureClassInitialized(java.lang.Class)'
        at org.glassfish.pfl.basic.reflection.BridgeBase.ensureClassInitialized(BridgeBase.java:287)
        at com.sun.corba.ee.impl.io.ObjectStreamClass$PersistentFieldsValue.computeValue(ObjectStreamClass.java:413)
        at com.sun.corba.ee.impl.io.ObjectStreamClass$PersistentFieldsValue.get(ObjectStreamClass.java:402)
        at com.sun.corba.ee.impl.io.ObjectStreamClass$2.run(ObjectStreamClass.java:467)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:74)
        at com.sun.corba.ee.impl.io.ObjectStreamClass.init(ObjectStreamClass.java:461)
        at com.sun.corba.ee.impl.io.ObjectStreamClass.lookupInternal(ObjectStreamClass.java:162)
        at com.sun.corba.ee.impl.io.ObjectStreamClass.lookup(ObjectStreamClass.java:89)
        at com.sun.corba.ee.impl.io.ObjectStreamClass.getActualSerialVersionUID(ObjectStreamClass.java:223)
        at com.sun.corba.ee.impl.util.RepositoryId.<clinit>(RepositoryId.java:164)
        at com.sun.corba.ee.impl.presentation.rmi.PresentationManagerImpl$NodeImpl.getTypeId(PresentationManagerImpl.java:337)
        at com.sun.corba.ee.impl.presentation.rmi.PresentationManagerImpl.addNodes(PresentationManagerImpl.java:316)
        at com.sun.corba.ee.impl.presentation.rmi.PresentationManagerImpl.makeTypeIds(PresentationManagerImpl.java:307)
        at com.sun.corba.ee.impl.presentation.rmi.PresentationManagerImpl.access$200(PresentationManagerImpl.java:59)
        at com.sun.corba.ee.impl.presentation.rmi.PresentationManagerImpl$ClassDataImpl.<init>(PresentationManagerImpl.java:130)
        at com.sun.corba.ee.impl.presentation.rmi.PresentationManagerImpl$1.lookup(PresentationManagerImpl.java:79)
        at com.sun.corba.ee.impl.presentation.rmi.PresentationManagerImpl$1.lookup(PresentationManagerImpl.java:76)
        at org.glassfish.pfl.basic.concurrent.WeakCache.get(WeakCache.java:84)
        at com.sun.corba.ee.impl.presentation.rmi.PresentationManagerImpl.getClassData(PresentationManagerImpl.java:107)
        at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie.setTarget(ReflectiveTie.java:79)
        at com.sun.corba.ee.impl.javax.rmi.CORBA.Util.registerTarget(Util.java:439)
        at com.sun.corba.ee.impl.javax.rmi.PortableRemoteObject.exportObject(PortableRemoteObject.java:91)
        at javax.rmi.PortableRemoteObject.exportObject(PortableRemoteObject.java:88)
        at javax.rmi.PortableRemoteObject.<init>(PortableRemoteObject.java:72)
        at com.sun.corba.ee.impl.folb.InitialGroupInfoService$InitialGISImpl.<init>(InitialGroupInfoService.java:97)
        at com.sun.corba.ee.impl.folb.InitialGroupInfoService$InitialGISServantLocator.<init>(InitialGroupInfoService.java:129)
        at com.sun.corba.ee.impl.folb.InitialGroupInfoService.bindName(InitialGroupInfoService.java:176)
        at com.sun.corba.ee.impl.folb.InitialGroupInfoService.<init>(InitialGroupInfoService.java:156)
        at org.glassfish.enterprise.iiop.impl.GlassFishORBManager.initORB(GlassFishORBManager.java:645)
        at org.glassfish.enterprise.iiop.impl.GlassFishORBManager.getORB(GlassFishORBManager.java:274)
        at org.glassfish.enterprise.iiop.impl.GlassFishORBFactoryImpl.createORB(GlassFishORBFactoryImpl.java:93)
        at org.glassfish.enterprise.iiop.api.GlassFishORBHelper.getORB(GlassFishORBHelper.java:167)
        at org.glassfish.enterprise.iiop.api.GlassFishORBHelper.getProtocolManager(GlassFishORBHelper.java:235)
        at com.sun.ejb.containers.BaseContainer.initializeProtocolManager(BaseContainer.java:920)
        ... 37 more

Reproducer

git clone [email protected]:ctabin/gf-test-lucene.git
JAVA_HOME=/usr/lib/jvm/java-24-openjdk-amd64/ mvn clean package

Note that simply running mvn clean package with JDK21 works.

Operating System

Linux Debian 12

JDK Version

OpenJDK 24

Payara Distribution

Payara Embedded All

ctabin avatar Jun 12 '25 09:06 ctabin

CORBA and remote EJBs have not been supported on JDK > 21 for a while now. I think there is another issue for this sitting in the Payara internal JIRA

lprimak avatar Jun 12 '25 12:06 lprimak

Hi @ctabin,

I have escalated this to the platform development team with the reference FISH-11409.

Best Regards, Elif

Elifzeynepedman avatar Jun 23 '25 10:06 Elifzeynepedman

Hi @Elifzeynepedman,

Is there any plan to support LTS JDK25 in Payara 7 soon ? Thanks for the insights.

ctabin avatar Nov 13 '25 12:11 ctabin