Hello Jeremie-

You are running into the JDK breaking change of API changes to the JAAS API. 

The JDK did not provide compatible back porting of the JAAS API changes, so 
there will need to be a hard line in Karaf JDK support across releases for the 
new JAAS API and JDK 24+ support.

see: https://issues.apache.org/jira/browse/KARAF-7977

I have a proposal on karaf dev mailing list discussing about how to move 
forward.

Currently, discussing the following options:

karaf-4.4.x - JDK 11 to JDK 21
karaf-4.5.x - JDK 21 to JDK 25
karaf-5.x - (based on Minho or other next-gen)

- or -

karaf-4.x - JDK 11 to JDK 21
karaf-5.x - (based on karaf-4.x) JDK 21 to JDK 25
karaf-6.x - (based on Minho or other next-gen)

Option #2 has better alignment with SEMVER, but doesn’t align with previously 
discussed roadmap, so nothing is formalized yet.

Thanks,
Matt Pavlovich

> On Aug 28, 2025, at 2:27 AM, Jérémie <[email protected]> wrote:
> 
> Hello all,
> 
> And thanks a lot for the v4.4.8 release. I upgraded my system to this version 
> and everything worked as expected.
> 
> However, I'd like to test the compatibility with JDK24, as I saw in the 
> release note, but my pax-exam integration tests failed because of a JAAS 
> issue in Felix EventAdmin. Is there something wrong with my packaging, or 
> something expected ?
> The stack trace below.
> 
> Regards,
> Jérémie
> 
> org.apache.karaf.services.eventadmin [Events.Framework] ERROR : 
> FrameworkEvent ERROR
> java.lang.UnsupportedOperationException: getSubject is not supported
>       at java.base/javax.security.auth.Subject.getSubject(Subject.java:277)
>       at 
> org.apache.felix.eventadmin.impl.handler.EventAdminImpl.prepareEvent(EventAdminImpl.java:146)
>       at 
> org.apache.felix.eventadmin.impl.handler.EventAdminImpl.postEvent(EventAdminImpl.java:180)
>       at 
> org.apache.felix.eventadmin.impl.adapter.BundleEventAdapter.bundleChanged(BundleEventAdapter.java:121)
>       at 
> org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:949)
>       at 
> org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:234)
>       at 
> org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:151)
>       at 
> org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEventPrivileged(EquinoxEventPublisher.java:229)
>       at 
> org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:138)
>       at 
> org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:130)
>       at 
> org.eclipse.osgi.internal.framework.EquinoxContainerAdaptor.publishModuleEvent(EquinoxContainerAdaptor.java:217)
>       at org.eclipse.osgi.container.Module.publishEvent(Module.java:499)
>       at org.eclipse.osgi.container.Module.doStop(Module.java:658)
>       at org.eclipse.osgi.container.Module.stop(Module.java:521)
>       at 
> org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.decStartLevel(ModuleContainer.java:1888)
>       at 
> org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1763)
>       at 
> org.eclipse.osgi.container.SystemModule.stopWorker(SystemModule.java:275)
>       at 
> org.eclipse.osgi.internal.framework.EquinoxBundle$SystemBundle$EquinoxSystemModule.stopWorker(EquinoxBundle.java:208)
>       at org.eclipse.osgi.container.Module.doStop(Module.java:660)
>       at org.eclipse.osgi.container.Module.stop(Module.java:521)
>       at org.eclipse.osgi.container.SystemModule.stop(SystemModule.java:207)
>       at 
> org.eclipse.osgi.internal.framework.EquinoxBundle$SystemBundle$EquinoxSystemModule$1.run(EquinoxBundle.java:226)
>       at java.base/java.lang.Thread.run(Thread.java:1447)

Reply via email to