Skip to content

Gradle task fails to copy over sourceset jar properly #48768

@TSFenwick

Description

@TSFenwick

Describe the bug

After upgrading to Quarkus 3.24.2 we started having failures running our application.

When running

./gradlew quarkusRun

The application fails to run with the following error

14:47:06,458 ERROR [io.qua.run.Quarkus] Error running Quarkus: java.lang.ExceptionInInitializerError
        at java.base/jdk.internal.misc.Unsafe.allocateInstance(Native Method)
        at java.base/java.lang.invoke.DirectMethodHandle.allocateInstance(DirectMethodHandle.java:501)
        at io.quarkus.runtime.Quarkus.run(Quarkus.java:79)
        at io.quarkus.runtime.Quarkus.run(Quarkus.java:51)
        at io.quarkus.runtime.Quarkus.run(Quarkus.java:144)
        at io.quarkus.runner.GeneratedMain.main(Unknown Source)
        at io.quarkus.bootstrap.runner.QuarkusEntryPoint.doRun(QuarkusEntryPoint.java:69)
        at io.quarkus.bootstrap.runner.QuarkusEntryPoint.main(QuarkusEntryPoint.java:37)
Caused by: java.lang.RuntimeException: Failed to start quarkus
        at io.quarkus.runner.ApplicationImpl.<clinit>(Unknown Source)
        ... 8 more
Caused by: java.lang.RuntimeException: java.nio.file.NoSuchFileException: /Users/tomfenwick/Dev/github.com/tsfenwick/sourceset-quarkus-gradle-repro/build/quarkus-app/lib/main/86495d84d99483297caec829b5c55a19e46cea95.generatedApi-1751578994559.jar
        at io.quarkus.bootstrap.runner.JarFileReference.asyncLoadAcquiredJarFile(JarFileReference.java:209)
        at io.quarkus.bootstrap.runner.JarFileReference.withJarFile(JarFileReference.java:147)
        at io.quarkus.bootstrap.runner.JarResource.getResourceData(JarResource.java:56)
        at io.quarkus.bootstrap.runner.RunnerClassLoader.loadClass(RunnerClassLoader.java:106)
        at io.quarkus.bootstrap.runner.RunnerClassLoader.loadClass(RunnerClassLoader.java:72)
        at java.base/java.lang.ClassLoader.defineClass1(Native Method)
        at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1027)
        at io.quarkus.bootstrap.runner.RunnerClassLoader.defineClass(RunnerClassLoader.java:152)
        at io.quarkus.bootstrap.runner.RunnerClassLoader.loadClass(RunnerClassLoader.java:111)
        at io.quarkus.bootstrap.runner.RunnerClassLoader.loadClass(RunnerClassLoader.java:72)
        at java.base/java.lang.Class.forName0(Native Method)
        at java.base/java.lang.Class.forName(Class.java:534)
        at java.base/java.lang.Class.forName(Class.java:513)
        at my.groupId.PetsResource_Bean.<init>(Unknown Source)
        at io.quarkus.arc.setup.Default_ComponentsProvider.addBeans1(Unknown Source)
        at io.quarkus.arc.setup.Default_ComponentsProvider.getComponents(Unknown Source)
        at io.quarkus.arc.impl.ArcContainerImpl.<init>(ArcContainerImpl.java:129)
        at io.quarkus.arc.Arc.initialize(Arc.java:38)
        at io.quarkus.arc.runtime.ArcRecorder.initContainer(ArcRecorder.java:52)
        at io.quarkus.runner.recorded.ArcProcessor$initializeContainer1770303700.deploy_0(Unknown Source)
        at io.quarkus.runner.recorded.ArcProcessor$initializeContainer1770303700.deploy(Unknown Source)
        ... 9 more
Caused by: java.nio.file.NoSuchFileException: /Users/tomfenwick/Dev/github.com/tsfenwick/sourceset-quarkus-gradle-repro/build/quarkus-app/lib/main/86495d84d99483297caec829b5c55a19e46cea95.generatedApi-1751578994559.jar
        at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:92)
        at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:106)
        at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111)
        at java.base/sun.nio.fs.UnixFileAttributeViews$Basic.readAttributes(UnixFileAttributeViews.java:55)
        at java.base/sun.nio.fs.UnixFileSystemProvider.readAttributes(UnixFileSystemProvider.java:171)
        at java.base/java.nio.file.Files.readAttributes(Files.java:1854)
        at java.base/java.util.zip.ZipFile$Source.get(ZipFile.java:1445)
        at java.base/java.util.zip.ZipFile$CleanableResource.<init>(ZipFile.java:724)
        at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:251)
        at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:180)
        at java.base/java.util.jar.JarFile.<init>(JarFile.java:345)
        at io.smallrye.common.io.jar.JarFiles.create(JarFiles.java:49)
        at io.quarkus.bootstrap.runner.JarFileReference.asyncLoadAcquiredJarFile(JarFileReference.java:207)
        ... 29 more

This bug isn't present in 3.24.1. It quarkusRun passes with the following properties:

# Gradle properties
quarkusPluginId=io.quarkus
quarkusPluginVersion=3.24.1
quarkusPlatformGroupId=io.quarkus.platform
quarkusPlatformArtifactId=quarkus-bom
quarkusPlatformVersion=3.24.1

The key thing the gradle build script is doing is generating Resources and DTOs from an openapi.yaml schema into a separate sourceset generatedApi that the sourceset main depends upon.

Expected behavior

Application runs properly with no exception

./gradlew quarkusRun

> Task :openApiGenerate
############################################################################################
# Thanks for using OpenAPI Generator.                                                      #
# We appreciate your support! Please consider donation to help us maintain this project.   #
# https://opencollective.com/openapi_generator/donate                                      #
############################################################################################
Successfully generated code to /Users/tomfenwick/Dev/github.com/tsfenwick/sourceset-quarkus-gradle-repro/build/generated-src
__  ____  __  _____   ___  __ ____  ______ 
 --/ __ \/ / / / _ | / _ \/ //_/ / / / __/ 
 -/ /_/ / /_/ / __ |/ , _/ ,< / /_/ /\ \   
--\___\_\____/_/ |_/_/|_/_/|_|\____/___/   
2025-07-03 15:04:32,508 INFO  [io.quarkus] (main) sourceset-quarkus-gradle-repro 1.0.0-SNAPSHOT on JVM (powered by Quarkus 3.24.1) started in 0.275s. Listening on: http://0.0.0.0:8080
2025-07-03 15:04:32,510 INFO  [io.quarkus] (main) Profile prod activated. 
2025-07-03 15:04:32,510 INFO  [io.quarkus] (main) Installed features: [cdi, hibernate-validator, reactive-routes, rest, rest-jackson, smallrye-context-propagation, vertx]

Actual behavior

When running

./gradlew quarkusRun

The application fails to run with the following error

14:47:06,458 ERROR [io.qua.run.Quarkus] Error running Quarkus: java.lang.ExceptionInInitializerError
        at java.base/jdk.internal.misc.Unsafe.allocateInstance(Native Method)
        at java.base/java.lang.invoke.DirectMethodHandle.allocateInstance(DirectMethodHandle.java:501)
        at io.quarkus.runtime.Quarkus.run(Quarkus.java:79)
        at io.quarkus.runtime.Quarkus.run(Quarkus.java:51)
        at io.quarkus.runtime.Quarkus.run(Quarkus.java:144)
        at io.quarkus.runner.GeneratedMain.main(Unknown Source)
        at io.quarkus.bootstrap.runner.QuarkusEntryPoint.doRun(QuarkusEntryPoint.java:69)
        at io.quarkus.bootstrap.runner.QuarkusEntryPoint.main(QuarkusEntryPoint.java:37)
Caused by: java.lang.RuntimeException: Failed to start quarkus
        at io.quarkus.runner.ApplicationImpl.<clinit>(Unknown Source)
        ... 8 more
Caused by: java.lang.RuntimeException: java.nio.file.NoSuchFileException: /Users/tomfenwick/Dev/github.com/tsfenwick/sourceset-quarkus-gradle-repro/build/quarkus-app/lib/main/86495d84d99483297caec829b5c55a19e46cea95.generatedApi-1751578994559.jar
        at io.quarkus.bootstrap.runner.JarFileReference.asyncLoadAcquiredJarFile(JarFileReference.java:209)
        at io.quarkus.bootstrap.runner.JarFileReference.withJarFile(JarFileReference.java:147)
        at io.quarkus.bootstrap.runner.JarResource.getResourceData(JarResource.java:56)
        at io.quarkus.bootstrap.runner.RunnerClassLoader.loadClass(RunnerClassLoader.java:106)
        at io.quarkus.bootstrap.runner.RunnerClassLoader.loadClass(RunnerClassLoader.java:72)
        at java.base/java.lang.ClassLoader.defineClass1(Native Method)
        at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1027)
        at io.quarkus.bootstrap.runner.RunnerClassLoader.defineClass(RunnerClassLoader.java:152)
        at io.quarkus.bootstrap.runner.RunnerClassLoader.loadClass(RunnerClassLoader.java:111)
        at io.quarkus.bootstrap.runner.RunnerClassLoader.loadClass(RunnerClassLoader.java:72)
        at java.base/java.lang.Class.forName0(Native Method)
        at java.base/java.lang.Class.forName(Class.java:534)
        at java.base/java.lang.Class.forName(Class.java:513)
        at my.groupId.PetsResource_Bean.<init>(Unknown Source)
        at io.quarkus.arc.setup.Default_ComponentsProvider.addBeans1(Unknown Source)
        at io.quarkus.arc.setup.Default_ComponentsProvider.getComponents(Unknown Source)
        at io.quarkus.arc.impl.ArcContainerImpl.<init>(ArcContainerImpl.java:129)
        at io.quarkus.arc.Arc.initialize(Arc.java:38)
        at io.quarkus.arc.runtime.ArcRecorder.initContainer(ArcRecorder.java:52)
        at io.quarkus.runner.recorded.ArcProcessor$initializeContainer1770303700.deploy_0(Unknown Source)
        at io.quarkus.runner.recorded.ArcProcessor$initializeContainer1770303700.deploy(Unknown Source)
        ... 9 more
Caused by: java.nio.file.NoSuchFileException: /Users/tomfenwick/Dev/github.com/tsfenwick/sourceset-quarkus-gradle-repro/build/quarkus-app/lib/main/86495d84d99483297caec829b5c55a19e46cea95.generatedApi-1751578994559.jar
        at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:92)
        at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:106)
        at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111)
        at java.base/sun.nio.fs.UnixFileAttributeViews$Basic.readAttributes(UnixFileAttributeViews.java:55)
        at java.base/sun.nio.fs.UnixFileSystemProvider.readAttributes(UnixFileSystemProvider.java:171)
        at java.base/java.nio.file.Files.readAttributes(Files.java:1854)
        at java.base/java.util.zip.ZipFile$Source.get(ZipFile.java:1445)
        at java.base/java.util.zip.ZipFile$CleanableResource.<init>(ZipFile.java:724)
        at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:251)
        at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:180)
        at java.base/java.util.jar.JarFile.<init>(JarFile.java:345)
        at io.smallrye.common.io.jar.JarFiles.create(JarFiles.java:49)
        at io.quarkus.bootstrap.runner.JarFileReference.asyncLoadAcquiredJarFile(JarFileReference.java:207)
        ... 29 more

The task quarkusDependenciesBuild isn't copying the correct jar name over.

2025-07-03T14:56:32.233-0700 [DEBUG] [org.gradle.api.Task] Dependency 86495d84d99483297caec829b5c55a19e46cea95:generatedApi::jar:1751579790328 : copying /Users/tomfenwick/Dev/github.com/tsfenwick/sourceset-quarkus-gradle-repro/build/classes/java/generatedApi to /Users/tomfenwick/Dev/github.com/tsfenwick/sourceset-quarkus-gradle-repro/build/quarkus-build/dep/lib/main/86495d84d99483297caec829b5c55a19e46cea95.generatedApi

is looking for 86495d84d99483297caec829b5c55a19e46cea95.generatedApi-1751578994559.jar to run successfully

build scan

./gradlew quarkusRun with info and debug logging

gradle-info.txt
gradle-debug.txt

How to Reproduce?

https://github.com/TSFenwick/sourceset-quarkus-gradle-repro

run ./gradlew quarkusRun

Output of uname -a or ver

Darwin Tom-Fenwick 24.5.0 Darwin Kernel Version 24.5.0: Tue Apr 22 19:53:27 PDT 2025; root:xnu-11417.121.6~2/RELEASE_ARM64_T6041 arm64

Output of java -version

openjdk 21.0.7 2025-04-15 LTS OpenJDK Runtime Environment Zulu21.42+19-CA (build 21.0.7+6-LTS) OpenJDK 64-Bit Server VM Zulu21.42+19-CA (build 21.0.7+6-LTS, mixed mode, sharing)

Quarkus version or git rev

3.24.2

Build tool (ie. output of mvnw --version or gradlew --version)

Gradle 8.14.2

Additional information

Scanning through some of the changes for 3.24.2. This failure could be related to #48551

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions