Bug Report: [6.2025.6] JDK 24 deployment failure
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
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
Hi @ctabin,
I have escalated this to the platform development team with the reference FISH-11409.
Best Regards, Elif
Hi @Elifzeynepedman,
Is there any plan to support LTS JDK25 in Payara 7 soon ? Thanks for the insights.