ServiceLoader fails for Java 23 with preview enabled

Robert Scholte rfscholte at apache.org
Mon Oct 14 17:05:33 UTC 2024


Right, the issue has been solved.

 

The library ended up on the classpath, because the module descriptor could not be read (Classfile API will solve this in the future).

Plexus-java is the library responsible for this.

The latest version op plexus-java supports Java 23, and based on the documentation of the maven-surefire-plugin it should be using the latest version of plexus-java.

What I didn’t notice is that the maven-plugin *overview* says 3.5.0 is the latest maven-surefire-plugin version, whereas the documentation was generated for *3.5.1*.

 

So it was a mismatch in the documentation that confused me.

 

Sorry for the noise,

Robert

 

From: Alan Bateman <alan.bateman at oracle.com> 
Sent: maandag 14 oktober 2024 18:09
To: rfscholte at apache.org; core-libs-dev at openjdk.org
Subject: Re: ServiceLoader fails for Java 23 with preview enabled

 


Christian Stein mentioned that this is something to due with Surefire not supporting JDK 23 class files, is that right?

-Alan

On 13/10/2024 12:53, Robert Scholte wrote:

Hi,

 

It seems there’s a change in the ServiceLoader, and it looks like regression to me.

I’ve created a small project to reproduce it (I can provide it if wanted and confirmed this is indeed a bug).

 

What it basically does is just: 

ServiceLoader.load(Car.class).findFirst().orElseThrow();

 

This succeeds with OpenJDK 22 (with and without preview enabled flag)

 

It also succeeds with OpenJDK 23 without the preview flag.

 

However, when adding the preview flag I get:

 

java.util.NoSuchElementException: No value present

        at java.base/java.util.Optional.orElseThrow(Optional.java:377)

        at nl.sourcegrounds.serviceloader.tck.CarTest.<init>(CarTest.java:16)

 

Anyone who can already explain this with this small amount of information?

 

Thanks,

Robert Scholte

 

These are the details for both versions (Windows OS)

 

openjdk version "22" 2024-03-19

OpenJDK Runtime Environment (build 22+36-2370)

OpenJDK 64-Bit Server VM (build 22+36-2370, mixed mode, sharing)

 

 

openjdk version "23" 2024-09-17

OpenJDK Runtime Environment (build 23+37-2369)

OpenJDK 64-Bit Server VM (build 23+37-2369, mixed mode, sharing)

 

 

 

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/core-libs-dev/attachments/20241014/7cf4d6ca/attachment.htm>


More information about the core-libs-dev mailing list